Dictionary学习笔记-嵌套Dictionary的遍历与排序(按Key值)(二)

本文介绍了一个使用C#实现的嵌套字典排序的例子。该示例创建了一个外部字典,其值为另一个字典,内部字典的键值对通过字符ASCII值填充。文章展示了如何对外部和内部字典进行排序,并打印排序后的结果。

class Program
    {
        static void Main()
        {
           
            //构造一个嵌套字典
            Dictionary<int, Dictionary<int, string>> dicExternal = new Dictionary<int, Dictionary<int, string>>();
            for (int i = 90; i > 65; i = i - 5)
            {
                Dictionary<int, string> dicInternal = new Dictionary<int, string>();
                for (int j = i; j > i - 5; j--)
                {
                    char asc = (char)j;
                    dicInternal.Add(j, asc.ToString());
                }
                dicExternal.Add(i, dicInternal);
            }
            //内层字典排序
            Dictionary<int, Dictionary<int, string>> T = new Dictionary<int, Dictionary<int, string>>();
            foreach (int key in dicExternal.Keys)
            {
                Dictionary<int, string> dicOrderInter = new Dictionary<int, string>();
                dicOrderInter = (from p in dicExternal[key] orderby p.Key select p).ToDictionary(pair => pair.Key, pair => pair.Value);
                T.Add(key, dicOrderInter);
            }
            //外层字典排序
            Dictionary<int, Dictionary<int, string>> dicOrderExter = new Dictionary<int, Dictionary<int, string>>();
            dicOrderExter = (from p in T orderby p.Key select p).ToDictionary(pair => pair.Key, pair => pair.Value);

            //输出排序后的所有内层字典的Value
            foreach (int key in dicOrderExter.Keys)
            {
                foreach (int keyInter in dicOrderExter[key].Keys)
                {
                    Console.WriteLine("key:" + keyInter + ",Value:" + dicOrderExter[key][keyInter].ToString());
                }
            }
            Console.ReadLine();
           
        }
    }

运行结果:

转载于:https://www.cnblogs.com/wangchao928/archive/2012/05/18/2508473.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值