/// <summary> /// 对象转化为字典集合 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <param name="arrProperty"></param> /// <param name="retain"></param> /// <returns></returns> public static List <Dictionary <string, object> > ObjectToDictionaryList <T>(List <T> list, string[] arrProperty, PropertyConvertType convertType = PropertyConvertType.Delete) { if (list == null) { return(null); } List <Dictionary <string, object> > listDic = new List <Dictionary <string, object> >(); PropertyInfo[] pps = list[0].GetType().GetProperties(); foreach (var item in list) { Dictionary <string, object> dic = new Dictionary <string, object>(); foreach (PropertyInfo item2 in pps) { if (convertType == PropertyConvertType.Retain && arrProperty.Contains(item2.Name)) { dic.Add(item2.Name, item2.GetValue(item, null)); } else if (convertType == PropertyConvertType.Delete && (arrProperty != null && !arrProperty.Contains(item2.Name))) { dic.Add(item2.Name, item2.GetValue(item, null)); } } listDic.Add(dic); } return(listDic); }
/// <summary> /// 将对象转化为字典集合 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <param name="arrProperty"></param> /// <param name="retain">1:删除属性 2:保留字段</param> /// <returns></returns> public static Dictionary <string, object> ObjectToDictionary <T>(T t, string[] arrProperty, PropertyConvertType convertType = PropertyConvertType.Delete) { if (convertType == PropertyConvertType.Retain && (arrProperty == null || arrProperty.Length == 0)) { return(null); } Dictionary <string, object> dic = new Dictionary <string, object>(); PropertyInfo[] pps = t.GetType().GetProperties(); foreach (PropertyInfo item in pps) { if (convertType == PropertyConvertType.Retain && arrProperty.Contains(item.Name)) { dic.Add(item.Name, item.GetValue(t, null)); } else if (convertType == PropertyConvertType.Delete && (arrProperty != null && !arrProperty.Contains(item.Name))) { dic.Add(item.Name, item.GetValue(t, null)); } } return(dic); }