这个问题也是我在做基础测试时遇到的一个题,这个题并不要求这么做。但是自己的思路是利用linq对泛型字典元素排序。
1.首先要了解到:不是所有的内存对象都能使用linq查询,能够使用Linq查询的内存对象必须实现了IEnumerable<T>接口,而在.net中所有的泛型集合都符合这个要求。
2.了解linq查询一些简单的操作符,如from,select,orderby等等。
在我的程序中,定义的泛型集合是一个泛型字典,键值为姓名,value为成绩。
在对其按照分数由高到低排序的时这样用:
dic= (from entry in dic orderby entry.Value descending select entry).ToDictionary(pair => pair.Key, pair => pair.Value);
dic为数据源,orderby descending 是按照成绩降序排序。"=>"是"lamda表达式",其作用就是将表达式分配给委托类型。pair是一个匿名函数。这里涉及到委托以及匿名委托(匿名方法)大家也可以查阅资料了解。 |