-6
public class Checkit
{
  public string ID{ get; set; }
  public string b{ get; set; }
  public string c{ get; set; }
}

我有一堂课,我也List<T>这样使用:

Checkitcs = new Checkit();
List<Checkit> Lst_Ch = new List<Checkit>();

我想按ID. 例如:

Lst_Ch[1] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[2] = { ID=124 , b='afgasf' , c='afagas'}
Lst_Ch[3] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[4] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[6] = { ID=105 , b='afasfa' , c='afagas'}

我想这样排序:

Lst_Ch[6] = { ID=105 , b='afasfa' , c='afagas'}
Lst_Ch[1] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[4] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[2] = { ID=124 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}

我怎样才能对这个列表进行排序?

4

2 回答 2

1

您的示例代码将无法编译,因为ID您的类的属性需要是 aint而不是 astring并且您需要在字符串值周围加上双引号,如下所示:

public class Checkit
{
    public int ID { get; set; }
    public string b { get; set; }
    public string c { get; set; }
}

List<Checkit> Lst_Ch = new List<Checkit>();
Lst_Ch.Add(new Checkit
{
    ID = 123,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 124,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 523,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 123,
    b = "afasfa",
    c = "afagas"
});        
Lst_Ch.Add(new Checkit
{
    ID = 523,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 105,
    b = "afasfa",
    c = "afagas"
});

其次,要对列表进行排序,请执行以下操作:

IEnumerable<Checkit> query = Lst_Ch.OrderBy(l => l.ID).ToList();

该变量query现在是您的排序列表,您可以在其他地方使用它,循环等。

于 2013-11-05T18:31:25.730 回答
0

你可以

  • 使用 Linq 对其进行排序并创建一个新的List<T>. 就像是:

    List<Foo> unsortedList = CreateAnUnorderedList() ;
    List<Foo> sortedList   = unsortedList.OrderBy( x => x.DateCreated )
                                         .ThenBy(  x => x.Id          )
                                         .ToList()
                                         ; 
    
  • 你可以就地排序。就像是:

    List<Foo> myList = CreateAnUnorderedList() ;
    myList.Sort( (x,y) => x.Id < y.Id ? -1 : x.Id > y.Id ? +1 : 0 ) ;
    

或者,您可以使用有序集合,例如SortedList<T>.

于 2013-11-05T18:49:40.240 回答