A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄冉 中级黑马   /  2012-11-2 08:04  /  1045 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个问题也是我在做基础测试时遇到的一个题,这个题并不要求这么做。但是自己的思路是利用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是一个匿名函数。这里涉及到委托以及匿名委托(匿名方法)大家也可以查阅资料了解。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

正序浏览
总结的很好啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马