Tuesday, 28 February 2017

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...