2016-06-30 182 views
-2

我有一个包含对象的列表的列表。排序对象列表的列表c#

List<List<Field>> records; 

Field对象包含ID和Value。

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

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

所以,如果我有2个记录,他们是这样的:使用ID 1将选择子列表中的对象,然后进行排序的父对象

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

。例如,如果ID是2,那么排序会替换0和1项,就像我在World之前所做的那样。

有没有简单的方法来做到这一点?

谢谢。

+3

【如何排序列表列出了?](http://stackoverflow.com/questions/3104042/how-to-sort-a-list-of-lists) –

+0

可能重复的可能的复制http://stackoverflow.com/questions/925471/sorting-a-list-of-objects-in-c-sharp –

回答

1

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

using System; using 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(); 
    } 
} 
+0

这很可爱。正是我在找什么。 – Grey