gpt4 book ai didi

c# - Array 类和 Enum.GetValues() 的简单形式

转载 作者:可可西里 更新时间:2023-11-01 08:06:25 24 4
gpt4 key购买 nike

我正在使用静态方法

Enum.GetValues(typeof(SomeEnum));

当您需要做的只是枚举值时,此方法非常有用,但出于某种原因,它返回一个非常简单的 Array 类形式。 我正在尝试找到一种简单的方法将其返回值转换为更“正常”的集合类,例如常规数组或 List<>。

到目前为止,如果我想这样做,我必须枚举 Enum.GetValues(typeof(SomeEnum)); 的输出。并将它们一一添加到列表<>。

有什么想法可以更干净地做到这一点吗?

答案:

关键是对返回结果进行强制转换--

SomeEnum[] enums = (SomeEnum[]) Enum.GetValues(typeof(SomeEnum));

如果你需要一个 List,那么只需将它包在括号中,然后像这样将它列出:

List<SomeEnum> list = ((SomeEnum[]) Enum.GetValues(typeof(SomeEnum))).ToList();

最佳答案

如果您使用的是 .NET 3.5,您还可以使用 Cast<T>和 ToList 扩展方法。

IEnumerable<SomeEnum> enums = Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>();

如果你愿意,你也可以得到一个列表

List<SomeEnum> list =  Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>().ToList();

关于c# - Array 类和 Enum.GetValues() 的简单形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1414277/

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