C#中怎样遍历一个Enum?

怎么遍历(enumerate)C#中的枚举类型呢?
例如一下的代码是不能通过编译的:

public enum Suit 
{
    Spades,
    Hearts,
    Clubs,
    Diamonds
}

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

编译器会报以下错误:
‘Suit’ is a ‘type’ but is used like a ‘variable’

可以通过以下方法来遍历Enum的元素名称或值
a. 打印Enum元素的值:

foreach (Suit suit in Enum.GetValues(typeof(Suit)))
{
    System.Console.WriteLine(suit.ToString());
}

b. 打印Enum元素的名:

foreach (string name in Enum.GetNames(typeof(Suits)))
{
    System.Console.WriteLine(name);
}