如何通过数组中指定索引处的元素对数组列表进行排序

时间:2015-05-18 23:37:27

标签: c# arrays list sorting

我有一个列表<>像这样创建的int数组

List<uint[]> onMinterm = new List<uint[]>();    

它有1000名成员。每个列表成员都有3个无符号整数,我就像那样添加我的数组

uint[] sayi= new uint[3];    
sayi[0] = 34432; sayi[1] = 63533; sayi[2] = 12;    
onMinterm.Add(sayi);

我想根据每个第3个成员(onMinterm)对我的1000个列表(sayi[2])进行排序。列表将按降序排序。样本成员应该在最后,因为它的第3个值非常小,如12。

2 个答案:

答案 0 :(得分:3)

  

我想根据每个第3个成员(onMinterm)对我的1000个列表(sayi[2])进行排序。列表将按降序排序。

如果你可以获得IOrderedEnumerable,那么你可以这样做。

var ordered = onMinterm.OrderByDescending(x => x[2]);

如果您想进行就地排序:

onMinterm.Sort((x1, x2)=> x2[2].CompareTo(x1[2]));

答案 1 :(得分:1)

您可以对List&lt;&gt;进行排序到位。

    class IntArrayComparer : IComparer<int[]>
    {
      public int Compare(T left, T right)
      {
        return right[2].CompareTo(left[2]);
      }
    }

    myList.Sort(new IntArrayComparer());