由大到小排序输出.最好来了简单明了的例子,谢谢.

解决方案 »

  1.   

    根据 Count 反过来 for 就可以了,还需要利用 Linq 的 ElementAt, 话说怎么不用 SortedListfor (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));
      

  2.   

    楼上的这个例子好像不对吧.比如
    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?为什么我这里面都没有呢?
      

  3.   


    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);
      

  4.   

    有点迷惘,我用的是VS2005,没有var,也没有OrderByDescending,怎么回事?
      

  5.   

    传一个自定义的 IComparer 接口。http://topic.csdn.net/u/20120111/22/96e3528a-a1c0-4a33-82af-0ea21fb6b621.html