我有一个实体类'Car',它具有许多属性,包括枚举
public enum CarType
{ BRANDNEW
ALMOSTNEW
OLD
}
当我获得Car对象的列表时,我想订购的列表的顶部是全新的汽车,然后是底部的几乎是新车和旧车。 我尝试订购的汽车名称效果很好
CarsList = new ObservableCollection<Car>(CarViewModel.OrderBy(item => item.Name))
但是我想根据枚举类型对列表进行排序。
我尝试将int
值添加到枚举类型
public enum CarType
{ BRANDNEW = 1
ALMOSTNEW = 2
OLD = 3
}
CarsList = new ObservableCollection<Car>(CarViewModel.OrderBy(item => item.CarType))
但是没有用。
答案 0 :(得分:5)
您的问题在其他地方,因为您的OrderBy
似乎没有问题(如下面的可验证的最小示例所示)
public enum CarType
{
BRANDNEW = 1,
ALMOSTNEW = 2,
OLD = 3
}
public static void Main(string[] args)
{
var list = new List<CarType>{CarType.ALMOSTNEW, CarType.OLD, CarType.BRANDNEW};
var asd = list.OrderBy(item => item);
Console.WriteLine(string.Join("\n", asd));
}
输出
BRANDNEW
ALMOSTNEW
OLD
最可能引起问题的原因是,您没有使用查询结果重新分配或更新UI。
CarsList = new ObservableCollection<Car>(CarViewModel.OrderBy(item => item.CarType))
您可以通过以下方法证明订单有效,通过查看输出窗口查看结果
Debug.WriteLine(string.Join("\n", CarsList ));