C#Help:在C#中对对象列表进行排序

12 c# sorting class

可能重复:
使用预定义的排序值
列表对对象排序C#Help:在C#中排序对象列表

双重帖子

在C#中对对象列表进行排序

public class CarSpecs
{

    public CarSpecs()
    {
    }

    private String _CarName;
    public String CarName
    {
        get { return _CarName; }
        set { _CarName = value; }
    }



    private String _CarMaker;
    public String CarMaker
    {
       get { return _CarMaker;}
       set { _CarMaker = value; }
    }


    private DateTime _CreationDate;
    public DateTime CreationDate
    {
        get { return _CreationDate; }
        set { _CreationDate = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个列表,我试图找出一种有效的方法来排序这个列表 List<CarSpecs> CarList,包含汽车生产日期的6(或任何整数)汽车.我打算做冒泡排序,但那会有用吗?任何帮助?

谢谢

Joe*_*orn 42

CarList = CarList.OrderBy( x => x.CreationDate ).ToList();
Run Code Online (Sandbox Code Playgroud)


Tom*_*han 5

首先,使用.Net 3.5中引入的简写语法,可以使这个类定义更短:

public class CarSpecs
{
    public CarSpecs() { }

    public String CarName { get; set;
    public String CarMaker { get; set; }
    public DateTime CreationDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这将编译成与上面的类完全相同的类.

其次,您可以使用Lambda表达式或LINQ轻松对它们进行排序:

var linq = (from CarSpecs c in CarList
            orderby c.CreationDate ascending
            select c) as List<CarList>;

var lambda = CarList.OrderBy(c => c.CreationDate).ToList();
Run Code Online (Sandbox Code Playgroud)


the*_*oop 0

BCL 中已经存在现有的排序算法 - Array.Sort() 和 List.Sort()。实现一个 IComparer 类,该类使用 CreationDate 确定排序顺序,然后将所有对象放入数组或列表中并调用适当的 Sort() 方法