| | |
| | | { |
| | | public static class ObjectExtension |
| | | { |
| | | public static IEnumerable<T> DicToIEnumerable<T>(this List<Dictionary<string, object>> dicList) |
| | | 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) |
| | | { |
| | | T model = Activator.CreateInstance<T>(); |
| | | foreach (PropertyInfo property in model.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance)) |
| | | { |
| | | if (!dic.TryGetValue(property.Name, out object value)) continue; |
| | | property.SetValue(model, value?.ToString().ChangeType(property.PropertyType), null); |
| | | list.Add(dic.DicToModel<T>()); |
| | | } |
| | | yield return model; |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | public static T DicToModel<T>(this Dictionary<string, object> dic) |