c# - 根据对象的枚举属性对列表进行排序
问题描述
我有一个实体类“汽车”,其中包含许多属性,包括枚举
public enum CarType
{ BRANDNEW
ALMOSTNEW
OLD
}
当我获得汽车对象列表时,我想订购列表,顶部是全新的汽车,然后是底部几乎是新车和旧车。我尝试用车名订购,效果很好
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))
但是没有用。
解决方案
您的问题在其他地方,因为您的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))
You can prove the order by is working by the following, check the results by looking at your output window
Debug.WriteLine(string.Join("\n", CarsList ));
推荐阅读
- javascript - 在 Javascript 和/或 jQuery 中,如何在包装的 div 中获取第一行文本
- documentum - 连接到文档源时出错
- javascript - 如何使用 moment.js 获得最后完成的 15 分钟?
- sql - 取消选择在此查询中不起作用
- webpack - “PageSpeed Insights”不显示外部文件?
- javascript - 过滤 ListItem 和 sap.m.List 中的格式化元素
- vba - 在 VBA 上声明和定义 FileSystemObject 对象的正确方法是什么?
- angular - 如何在其他组件中动态插入模板引用 angular 5
- angular - 将文本绑定到标签角 4
- xaml - UWP 数据透视项目样式