コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }