整理具有多个属性的列表
本文关键字:属性 列表 | 更新日期: 2023-09-27 17:58:10
我对C#中的列表排序很困惑,我已经学习了不同的排序教程,例如使用列表(排序方法)或使用IComparable进行排序,但实际上没有什么能帮助我实现目标。
例如,我有一份汽车清单,
Car Number
Car Title
and few other properties
现在车号可以是任何双数,也可以是楠(null),车号永远不能为null。
我想以一种方式对列表进行排序,首先按汽车编号进行排序,如果它们不适用于一辆汽车,则使用其标题对其他汽车进行排序。
所以如果我有这样的东西,
Car 1 100.0 (car number) BMW x6 (car name)
Car 2 (there isn't any car number) Mercedies A class (car name)
Car 3 99.0 Alpha Romeo
Car 4 1.2 Jeep
Car 5 4.1 Victoria Marshall 1933
Car 6 no number Vauxhal
输出我希望我的列表类被排序为
Car 4, Car 5, Car 3, Car 1, Car 2, Car 6
谢谢你的帮助。
尝试类似的东西
var lst = new List<Cars>()
//add cars to list
lst = lst.Orderby(c => c.CarNumber).ToList();
你可以这样扩展它:
lst = lst.Orderby(c => c.CarNumber).ThenBy(c=> c.Title).ToList();
或
你实现了IComparable,这样它就会按照你想要的方式排序:
public class Car : IComparable<Car>
{
public string Number { get; set; }
public int CompareTo(Car obj)
{
return obj.Number.CompareTo(Number);
}
}