列表C#的排序列表

时间:2014-09-22 18:00:20

标签: c# list sorting

我需要帮助按内部列表中的属性对列表列表进行排序。

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

但没有结果

感谢您的帮助!

2 个答案:

答案 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();