请问SortedDictionary如何按值排序输出?

ioriyzsnfdf 2012-01-30 10:02:55
由大到小排序输出.最好来了简单明了的例子,谢谢.
...全文
406 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ioriyzsnfdf 2012-02-01
  • 打赏
  • 举报
回复
有点迷惘,我用的是VS2005,没有var,也没有OrderByDescending,怎么回事?
threenewbee 2012-02-01
  • 打赏
  • 举报
回复
传一个自定义的 IComparer 接口。

http://topic.csdn.net/u/20120111/22/96e3528a-a1c0-4a33-82af-0ea21fb6b621.html
q107770540 2012-01-31
  • 打赏
  • 举报
回复

SortedDictionary<double, int> results = new SortedDictionary<double, int>();
results.Add(1.5,10);
results.Add(0.89,8);
results.Add(1.23,20);
results.Add(9.55,7);
results.Add(4.5,13);
var query=results.OrderByDescending(t=>t.Value).ToDictionary(t=>t.Key,t=>t.Value);
ioriyzsnfdf 2012-01-31
  • 打赏
  • 举报
回复
楼上的这个例子好像不对吧.比如
SortedDictionary<double, int> results = new SortedDictionary<double, int>();
results.Add(1.5,10);
results.Add(0.89,8);
results.Add(1.23,20);
results.Add(9.55,7);
results.Add(4.5,13);
请问如何按值由大到小排列输出?

另外var?Reverse?为什么我这里面都没有呢?
机器人 2012-01-31
  • 打赏
  • 举报
回复
根据 Count 反过来 for 就可以了,还需要利用 Linq 的 ElementAt, 话说怎么不用 SortedList

for (var i = dict.Keys.Count-1; i>=0; i--)
{
...
}

var dict = new SortedDictionary<int, string>();
dict.Add(1, "1");
dict.Add(3, "3");
dict.Add(2, "2");
dict.Add(0, "0");

for (int i = dict.Keys.Count-1; i >= 0; i--)
Console.WriteLine(dict.ElementAt(i));

Console.Read();


或者直接:

dict.Reverse().ToList().ForEach(d => Console.WriteLine(d));
ioriyzsnfdf 2012-01-31
  • 打赏
  • 举报
回复
人呢?

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧