c# - 如何按字母顺序而不是 int 对枚举进行排序?

标签 c# linq enums

假设我希望我的用户能够根据枚举值对表格进行排序

我的枚举看起来像这样:

public enum Letter
{
    C= 0,
    A,
    B,
    E,
    D,            
}

查询可能如下所示:

var letters = from l in context.Example
                  orderby l.Letter
                  select l;

升序/降序将基于枚举 int 值而不是字母顺序。有没有一种简单的方法可以以编程方式按字母顺序对其进行排序?显然,我可以在我的枚举类中自己对其进行排序,但这可能会成为更大枚举的平凡工作。

我希望它如何排序:

//A       ACTUAL  //C
//B       ACTUAL  //A
//C       ACTUAL  //B
//D       ACTUAL  //E
//E       ACTUAL  //D

最佳答案

你可以使用这个片段:

Letter[] allletters =  Enum.GetValues(typeof(Letter)).Cast<Letter>().ToArray();
var sortedLetters = allletters.OrderBy(l => l.ToString());

关于c# - 如何按字母顺序而不是 int 对枚举进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46718622/

相关文章:

java - 使用来自不同类加载器的键的 EnumMap 的奇怪行为

enums - 是否可以加入两个枚举?

objective-c - 将枚举值分配给 Obj-C 中的属性

c# - 在 C# 中使用 P/Invoke 注册 _set_purecall_handler 函数

c# - 从 Microsoft Health API 检索数据

c# - 有没有更简单的方法可以将多个可观察集合组合成一个可观察集合?

c# - ASP.NET MVC - 下拉列表后处理问题

c# - EntityFramework 迁移 - 每个构建配置的播种

c# - 使用 Linq 如何从两个表中获取用户列表及其上次登录