如何枚举一个枚举?
如何枚举一个枚举?
如何在C#中枚举enum
?
例如,以下代码无法编译:
public enum Suit { Spades, Hearts, Clubs, Diamonds } public void EnumerateAllSuitsDemoMethod() { foreach (Suit suit in Suit) { DoSomething(suit); } }
它会产生以下编译时错误:
\'Suit\'是一个\'type\',但像\'variable\'一样使用。
它在第二个Suit
关键字上失败。
admin 更改状态以发布 2023年5月23日
在我的看来,你应该想要打印出每个枚举的名称,而不是值。这种情况下,Enum.GetNames()
似乎是正确的方法。
public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } public void PrintAllSuits() { foreach (string name in Enum.GetNames(typeof(Suits))) { System.Console.WriteLine(name); } }
顺便说一下,递增值不是枚举值的好方式。相反,你应该这样做。
我会使用 Enum.GetValues(typeof(Suit))
代替。
public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } public void PrintAllSuits() { foreach (var suit in Enum.GetValues(typeof(Suits))) { System.Console.WriteLine(suit.ToString()); } }
foreach (Suit suit in (Suit[]) Enum.GetValues(typeof(Suit))) { }
Note: 将 (Suit[])
转换并不是必需的,但是它确实可以使代码快 0.5 纳秒。 但有助于优化代码。