排序对象列表c#

时间:2016-06-30 18:39:28

标签: c# linq list sorting

我有一个包含对象的列表列表。

List<List<Field>> records;

Field对象包含ID和Value。

我需要使用Field记录的属性对顶级List进行排序。

排序需要说明的是,对于每条记录,使用ID选择一个列表,然后按值对父级进行排序。

所以,如果我有2条记录,它们会是这样的:

  List[0] -> List [ID=1 Value="Hello", ID=2 Value="World"]
  List[1] -> List [ID=1 Value="It's", ID=2 Value="Me"]

使用ID 1将选择子列表中的对象,然后对父对象进行排序。例如,如果ID为2,那么排序将交换0和1项,因为我来到世界之前。

有一种简单的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

以下是您正在寻找的示例:

使用System; 使用System.Collections.Generic; 使用System.Linq;

public class Program
{
  public static void Main()
  {
    var structure = new List<List<string>>();
    structure.Add(new List<string>() {"Hello", "World"});
    structure.Add(new List<string>() {"It's", "Me"});

    SortBySubIndex(structure, 0);
    SortBySubIndex(structure, 1);
  }

  public static void SortBySubIndex(List<List<string>> obj, int index) 
  {
    obj = obj.OrderBy(list => list[index]).ToList();
    Console.WriteLine("INDEX: " + index);
    Console.WriteLine(obj[0][0]);
    Console.WriteLine(obj[1][0]);   
    Console.WriteLine();
  }
}