对象转字典、字典排序

简介: 对象转字典、字典排序
        /// <summary>    
        /// 将对象属性转换为key-value对    
        /// </summary>    
        /// <param name="o"></param>    
        /// <returns></returns>    
        public static Dictionary<String, Object> ObjToMap(Object o)
        {
            Dictionary<String, Object> map = new Dictionary<string, object>();
            Type t = o.GetType();
            PropertyInfo[] pi = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo p in pi)
            {
                MethodInfo mi = p.GetGetMethod();
                if (mi != null && mi.IsPublic)
                {
                    map.Add(p.Name, mi.Invoke(o, new Object[] { }));
                }
            }
            return map;
        }
        /// <summary>  
        /// 数据字典按Key升序排列  
        /// </summary>  
        /// <param name="dic"></param>  
        /// <returns></returns>  
        public static string DictonarySortToStr(Dictionary<string, Object> dic)
        {
            var dicSort = (from objDic in dic orderby objDic.Key ascending select objDic).ToList();
            StringBuilder str = new StringBuilder();
            for (int i = 0; i < dicSort.Count; i++)
            {
                KeyValuePair<string, Object> kvp = dicSort[i];
                if (kvp.Value == null || string.IsNullOrEmpty(kvp.Value.ToString()))
                    continue;
                    str.AppendFormat("{0}={1}&", kvp.Key, kvp.Value);
            }
            str = str.Remove(str.Length - 1, 1);
            return str.ToString();
        }
        /// <summary>  
        /// 数据字典按Key的Ascii升序排列  
        /// </summary>  
        /// <param name="dic"></param>  
        /// <returns></returns>  
        public static string DictonarySortAsciiToStr(Dictionary<string, Object> dic)
        {
            string[] keys = dic.Keys.ToArray();
            Array.Sort(keys, string.CompareOrdinal);
            StringBuilder str = new StringBuilder();
            foreach (string key in keys)
            {
                Object value;
                dic.TryGetValue(key, out value);
                if (value == null || string.IsNullOrEmpty(value.ToString()))
                    continue;
                str.AppendFormat("{0}={1}&", key, value);
            }
            str = str.Remove(str.Length-1,1);
            return str.ToString();
        }
        /// <summary>  
        /// 数据字典按Key的Ascii升序排列  
        /// </summary>  
        /// <param name="dic"></param>  
        /// <returns></returns>  
        public static Dictionary<string, Object> DictonarySortAscii(Dictionary<string, Object> dic)
        {
            string[] keys = dic.Keys.ToArray();
            Array.Sort(keys, string.CompareOrdinal);
            Dictionary<string, Object> newDic = new Dictionary<string, Object>();
            foreach (string key in keys)
            {
                Object value;
                dic.TryGetValue(key, out value);
                newDic.Add(key, value);
            }
            return newDic;
        }
/// <summary>
        /// 分隔&符号链接的字符串
        /// </summary>
        /// <param name="dataStr"></param>
        /// <returns></returns>
        public static Dictionary<string, string> SplitAndToDic(string dataStr)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            string[] strList = dataStr.Split('&');
            foreach(string str in strList)
            {
                string[] kvStr = str.Split('=');
                dic.Add(kvStr[0],kvStr[1]);
            }
            return dic;
        }
相关文章
列表 元组 字典 集合
列表 元组 字典 集合
|
6月前
|
机器学习/深度学习 存储 搜索推荐
对字典进行排序与为何需要对字典排序
对字典进行排序与为何需要对字典排序
42 0
|
算法 Python 容器
字典的相关应用
字典的相关应用
64 0
|
存储 索引 Python
列表、字典、集合、元组
列表、字典、集合、元组
80 0
|
JSON 算法 数据格式
使用内置字典
使用内置字典
69 0
|
数据格式 Docker 容器
准备字典数据
准备字典数据
127 0
|
Python
【怎么给一个字典进行按值或key来排序?】
字典是具有指定数字或键的特定数据集或组。在 Python 以外的编程语言中,它们也被称为哈希映射或关联数组。
114 0
字典
今天我们来学习字典的相关内容,视频我已经传到b站上了,现在把链接发给大家,大家可以在b站上观看。
208 0
字典
|
Swift
字典的使用
字典的使用
125 0
字典的使用