我有一个包含对象的列表列表。
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项,因为我来到世界之前。
有一种简单的方法吗?
感谢。
答案 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();
}
}