Friday, 5 August 2016

c# - How to enumerate an enum




How can you enumerate an enum in C#?



E.g. the following code does not compile:



public enum Suit
{
Spades,
Hearts,
Clubs,
Diamonds

}

public void EnumerateAllSuitsDemoMethod()
{
foreach (Suit suit in Suit)
{
DoSomething(suit);
}
}



And it gives the following compile-time error:




'Suit' is a 'type' but is used like a 'variable'




It fails on the Suit keyword, the second one.


Answer



foreach (Suit suit in (Suit[]) Enum.GetValues(typeof(Suit)))

{
}


Note: The cast to (Suit[]) is not strictly necessary, but it does make the code 0.5 ns faster.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...