我对在C#中整理列表非常困惑,我已经通过不同的教程进行排序,例如使用列表排序(排序方法)或使用IComparable但实际上没有任何东西可以帮助我实现我想要的东西。
例如我有一个汽车列表,
Car Number
Car Title
and few other properties
现在车号可以是任意双号,也可以是Nan(null),Car Title永远不能为空。
我希望以一种方式对列表进行排序,首先按车号排序,如果它们不适用于汽车,则使用其标题对其余车辆进行排序。
所以如果我有这样的话,
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
Out put我希望我的列表类被排序为
Car 4, Car 5, Car 3, Car 1, Car 2, Car 6
感谢您的帮助。
答案 0 :(得分:2)
尝试类似
的内容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);
}
}