我需要帮助按内部列表中的属性对列表列表进行排序。
List<List<int>> Nota = new List<List<int>>();
Nota.Add(new List<int> { 0,1,3,4});
Nota.Add(new List<int> { 0,3,3,4});
Nota.Add(new List<int> { 0,2,3,4});
然后我希望按内部列表中的第二个元素排序,因此结果应为
{ 0,1,3,4}
{ 0,2,3,4}
{ 0,3,3,4}
排序后..
我试过
Nota.OrderByDescending(x => - x[1]);
但没有结果
感谢您的帮助!
答案 0 :(得分:4)
您可以使用List<T>.Sort
:
Nota.Sort((a,b) => a[1].CompareTo(b[1]));
答案 1 :(得分:0)
虽然不是最佳方法,但如果您捕获输出,则Nota.OrderByDescending(x => - x[1]);
将起作用。与Sort
不同,OrderBy
不会对列表进行排序,而是返回一个枚举器,它将按所需顺序为您提供项目。
所以这样的事情会起作用:
Nota = Nota.OrderByDescending(x => - x[1]).ToList();
或者更简单地说
Nota = Nota.OrderBy(x => x[1]).ToList();