黑马程序员技术交流社区

标题: 如何给字典排序呢 [打印本页]

作者: 笔墨伺候    时间: 2012-10-18 13:19
标题: 如何给字典排序呢
如果我们需要用到一个字典,要存入键和值,如果值是int型的,那么我们该怎么去按照值中的大小来排序呢
字典本身有提供这样的方法吗
作者: 徐艳勇    时间: 2012-10-18 13:38
有对应的
作者: 笔墨伺候    时间: 2012-10-18 13:44
yanner 发表于 2012-10-18 13:38
有对应的

能具体说明一下么
作者: 秦敖    时间: 2012-10-18 13:53
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 字典排序
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, int> dic = new Dictionary<string, int>
            {
                {"张飞",60},{"关羽",70},{"刘备",50},{"赵云",80},{"马超",40}
            };
            Console.WriteLine("---------------排序之前--------------");
            foreach (var item in dic)
            {
                Console.WriteLine("姓名:{0}, 攻击力:{1}", item.Key, item.Value);
            }
            //按照字典的值进行降序排列.
            var result = from d in dic orderby d.Value descending select d;
            Console.WriteLine("---------------排序之后--------------");
            foreach (var item in result)
            {
                Console.WriteLine("姓名:{0}, 攻击力:{1}", item.Key, item.Value);
            }
            Console.ReadKey();
        }
    }
}
作者: 笔墨伺候    时间: 2012-10-18 13:56
秦敖 发表于 2012-10-18 13:53
using System;
using System.Collections.Generic;
using System.Linq;

高手,学习了,原来字典还有这样的用法啊:victory:
作者: 徐艳勇    时间: 2012-10-18 14:09
d.OrderBy(a=>a.Value).ToDictionary(a=>a.Key,a.Value);
作者: 徐艳勇    时间: 2012-10-18 14:12
a=>a.Value
手机不好打字
作者: 笔墨伺候    时间: 2012-10-18 14:14
yanner 发表于 2012-10-18 14:12
a=>a.Value
手机不好打字

学习了:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2