我有一个枚举,我想显示所有可能的值.有没有办法获取枚举的所有可能值的数组或列表,而不是手动创建这样的列表?例如,如果我有一个枚举:
public enum Enumnum { TypeA, TypeB, TypeC, TypeD }
Run Code Online (Sandbox Code Playgroud)
我怎么能得到一个List<Enumnum>
包含{ TypeA, TypeB, TypeC, TypeD }
?
Dir*_*mar 145
这将使用Enum.GetValues
以下内容获取枚举值的简单数组:
var valuesAsArray = Enum.GetValues(typeof(Enumnum));
Run Code Online (Sandbox Code Playgroud)
这会为您提供一个通用列表:
var valuesAsList = Enum.GetValues(typeof(Enumnum)).Cast<Enumnum>().ToList();
Run Code Online (Sandbox Code Playgroud)
Øyv*_*hen 16
试试这段代码:
Enum.GetNames(typeof(Enumnum));
Run Code Online (Sandbox Code Playgroud)
这将返回一个string[]
包含所选枚举的所有枚举名称.
Jor*_*dan 15
现在,使用 .NET 5.0 中的通用方法,这要容易得多。
ColorEnum[] colors = Enum.GetValues<ColorEnum>();
Run Code Online (Sandbox Code Playgroud)
您可以使用
Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>().ToArray();
Run Code Online (Sandbox Code Playgroud)
这将返回一个数组!
你可能想要这样做:
public enum Enumnum {
TypeA = 11,
TypeB = 22,
TypeC = 33,
TypeD = 44
}
Run Code Online (Sandbox Code Playgroud)
这个的所有 int 值enum
都是11,22,33,44
.
您可以通过以下方式获取这些值:
var enumsValues = Enum.GetValues(typeof(Enumnum)).Cast<Enumnum>().ToList().Select(e => (int)e);
Run Code Online (Sandbox Code Playgroud)
string.Join(",", enumsValues)
是11,22,33,44
。
归档时间: |
|
查看次数: |
78368 次 |
最近记录: |