相关疑难解决方法(0)

C#按Enum排序列表

我有一个实体列表,它有一个枚举.

public class Car
{
    public int CarId { get; set; }

    public string CarName { get; set; }

    public CarCategory CarCategory { get; set; }
}

public enum CarCategory
{
    None = 0,
    kLowRange = 1,
    kMidRange = 2,
    kHighRange = 3
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个汽车列表,我想使用Comparer并在枚举上运行它,以便所有具有CarCategory为kMidRange和kHighRange的实体将被排序到列表中的第一个.

我已经尝试了答案,但没有找到任何运气.

谢谢.

更新: 我有点犯了我正在做的错误.我在看

var sortedList = carList
  .OrderBy(x => x.CarCategory, 
                new EnumComparer<CarCategory> {
                  CarCategory.kMidRange, 
                  CarCategory.kHighRange});
Run Code Online (Sandbox Code Playgroud)

但是得到了相同的价值观.我必须添加.ToList()才能获得结果.

var sortedList = carList
  .OrderBy(x => x.CarCategory, 
                new EnumComparer<CarCategory> { 
                  CarCategory.kMidRange, 
                  CarCategory.kHighRange})
  .ToList();
Run Code Online (Sandbox Code Playgroud)

会给我预期的结果.我的错!

c# sorting enums

7
推荐指数
1
解决办法
2万
查看次数

根据主观值对列表进行排序

说我有这个珍贵的岩石清单:Adamantite, Diamonds, Crystal, Gold, Silver, Bronze.

每个rock都是一个对象,它有一个名为property的属性Rarity,它是一个基于以下任一值或这些值的字符串:Common, Precious, Rare, Mythic, Infinite.

我想根据这些价值对我的清单进行排序,哪些Common是最不珍贵的,Infinite也是最珍贵的.有没有办法使用linq,我可以很容易地实现这一点,或者我是否需要为这种情况弹出一个新的方法?我也希望能够从最珍贵到最少的分类.

谢谢!

c# sorting list

2
推荐指数
1
解决办法
144
查看次数

标签 统计

c# ×2

sorting ×2

enums ×1

list ×1