您好,感谢您阅读此帖。
我有一个以这种方式创建的列表
List<Tuple<int, double>> Ratings = new List<Tuple<int, double>>();
让我们说清单的价值如下
Index int double
[0] 1 4,5
[1] 4 1,0
[2] 3 5,0
[3] 2 2,5
如何对列表进行排序,以便最高的双值?像这样
Index int double
[0] 3 5,0
[1] 1 4,5
[2] 2 2,5
[3] 4 1,0
答案 0 :(得分:9)
Ratings.OrderByDescending(t => t.Item2);
答案 1 :(得分:5)
您只需使用
即可Ratings = Ratings.OrderByDescending (t => t.Item2).ToList();
答案 2 :(得分:3)
你是否尝试过使用列表中的Sort
方法,intellisense应该向你建议它,它有点自然:
Ratings.Sort((x, y) => y.Item2.CompareTo(x.Item2));
// at this stage the Ratings list will be sorted as desired
答案 3 :(得分:3)
List<Tuple<int, double>> Ratings = new List<Tuple<int, double>>();
Ratings.Add(new Tuple<int, double>(1, 4.5));
Ratings.Add(new Tuple<int, double>(4, 1.0));
Ratings.Add(new Tuple<int, double>(3, 5.0));
Ratings.Add(new Tuple<int, double>(2, 2.5));
var list = Ratings.OrderByDescending(c => c.Item2).ToList();
答案 4 :(得分:0)
var comparer = Comparer<Tuple<int, double>>.Create((x, y) => -1 * x.Item2.CompareTo(y.Item2));
Ratings.Sort(comparer);