gpt4 book ai didi

c# - 按特定项目对枚举类型列表的成员进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:47 25 4
gpt4 key购买 nike

我有一个枚举:

 public enum Fruits
{
Apple = 14,
Lemon = 174,
Grapes = 200,
Peach = 1
}

和这个枚举的列表:

IEnumerable<Fruits> Fruits = new List<Fruits>();

默认情况下,当我在 enum 上调用 getValues 时,它会按条目的 ID 对条目进行排序。我将列表显示为 UI 中的下拉列表,并希望按特定顺序对列表成员进行排序。在我的示例中,我希望 Lemon 成为列表中的第一项。

我试着用像这样的柠檬条目来订购元素:

Fruits.OrderBy(f => f.Lemon);

但我不允许在这种情况下执行此操作 f.Lemon。也许我可以foreach 列表删除 Lemon 项,然后将其作为第一个条目插入。

我是编程新手,我发现了一些类似的问题,但不是 enum 类型。

最佳答案

您可以使用 OrderByDescending + ThenBy:

fruits.OrderByDescending(f => f == Fruits.Lemon)
.ThenBy(f => f);

请注意,该变量的名称应与枚举类型不同(我使用小写的 fruits)。

如果您想按名字排序:

      .ThenBy(f => f.ToString());

f == Fruits.Lemon 返回一个 bool 值,您可以根据它进行排序。它类似于 SQL CASE:

ORDER BY CASE WHEN Fruit = 'Lemon' THEN 1 ELSE 0 END DESC, FRUIT ASC

关于c# - 按特定项目对枚举类型列表的成员进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com