linq 如何在C#中按名称对枚举进行排序[已关闭]

tktrz96b  于 2022-12-20  发布在  C#
关注(0)|答案(1)|浏览(204)

两个月前关门了。
Improve this question
我试着按名称对枚举进行排序,我有以下代码:

Enum.GetNames(x.options).Where(.....).Select(.....)

注意x.options是一个枚举
并且我想按枚举的名称对linq的结果进行排序,我该怎么做呢?

yduiuuwa

yduiuuwa1#

假设如下enum

public enum Number
{
    One = 1,
    Two = 2,
    Three = 3,
    Four = 4,
}

需要在Enum.GetNames中传递枚举类型,然后调用OrderBy(以升序排序):

var sortedEnum = Enum.GetNames(typeof(Number)).OrderBy(x => x);

// or, from .NET 5 onwards:
var sortedEnum = Enum.GetNames<Number>().OrderBy(x => x);

这将返回具有以下(排序)值的IOrderedEnumerable<string>

Four
One
Three
Two

当然,您可以对结果执行.ToList().ToArray()操作,以分别在列表或数组中返回它们。

相关问题