根据对象的枚举属性订货清单

问题描述 投票:-1回答:1

我有一个实体类“汽车”与包括枚举的属性数量

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))

但没有奏效。

c# xamarin xamarin.forms
1个回答
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

Full Demo Here

你的问题的最可能的原因是,你是不是重新分配或更新您的查询结果的UI。

CarsList = new ObservableCollection<Car>(CarViewModel.OrderBy(item => item.CarType))

可以证明的顺序由由下面的工作,通过看你的输出窗口,检查结果

    Debug.WriteLine(string.Join("\n", CarsList ));
© www.soinside.com 2019 - 2024. All rights reserved.