如何对列表进行排序<T>?

这个问题在这里已经有了答案:

  • 如何按对象中的属性排序列表<T> 19答案

  • 你的示例代码不会被编译,因为你的类的ID属性需要是一个int而不是一个string ,你需要在你的字符串值中加双引号,如下所示:

    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现在是您的排序列表,您可以在别处使用,循环等。


    您可以

  • 使用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>

    链接地址: http://www.djcxy.com/p/70947.html

    上一篇: How To Sort a List<T>?

    下一篇: How do I order by lastname?