| using Microsoft.Extensions.Primitives; | 
| using Microsoft.IdentityModel.Tokens; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Reflection; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
|   | 
| namespace WIDESEA_Core.Helper | 
| { | 
|     public static class ObjectExtension | 
|     { | 
|         public static List<T> DicToIEnumerable<T>(this List<Dictionary<string, object>> dicList) | 
|         { | 
|             List<T> list = new List<T>(); | 
|             foreach (Dictionary<string, object> dic in dicList) | 
|             { | 
|                 list.Add(dic.DicToModel<T>()); | 
|             } | 
|             return list; | 
|         } | 
|   | 
|         public static T DicToModel<T>(this Dictionary<string, object> dic) | 
|         { | 
|             T model = Activator.CreateInstance<T>(); | 
|             PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance); | 
|             foreach (var property in propertyInfos) | 
|             { | 
|                 object value = null; | 
|                 if (!dic.TryGetValue(property.Name, out value))  | 
|                 { | 
|                     if (!dic.TryGetValue(property.Name.FirstLetterToUpper(), out value)) | 
|                     { | 
|                         if (!dic.TryGetValue(property.Name.FirstLetterToLower(), out value)) | 
|                         { | 
|                             continue; | 
|                         } | 
|                     } | 
|                 } | 
|                 // 检查是否为空字符串 | 
|                 if (!string.IsNullOrEmpty(value?.ToString())) | 
|                 { | 
|                     // 将值转换为属性的类型并设置属性值 | 
|                     property.SetValue(model, value.ChangeType(property.PropertyType)); | 
|                 } | 
|             } | 
|             return model; | 
|         } | 
|     } | 
| } |