How do I enumerate an enum in C#?

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

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

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

Refer: https://stackoverflow.com/questions/105372/how-do-i-enumerate-an-enum-in-c