C#ですべてのenumの値をループするには?

**この質問はすでにここに回答があります:**https://stackoverflow.com/questions/105372/how-to-enumerate-an-enum 26件の回答*。

public enum Foos
{
    A,
    B,
    C
}

Foos`の取り得る値をループさせる方法はありますか?

基本的には?

foreach(Foo in Foos)
ソリューション

はい、GetValues`メソッドを使用できます。

var values = Enum.GetValues(typeof(Foos));

または、型付けされたバージョンです。

var values = Enum.GetValues(typeof(Foos)).Cast();

私はずいぶん前に、このような場合のためのヘルパー関数をプライベート・ライブラリに追加しました。

public static class EnumUtil {
    public static IEnumerable GetValues() {
        return Enum.GetValues(typeof(T)).Cast();
    }
}

使い方です。

var values = EnumUtil.GetValues();
解説 (12)
foreach(Foos foo in Enum.GetValues(typeof(Foos)))
解説 (4)

はい。System.Enum][2]クラスの[GetValues()`]1メソッドを使用します。

[2]: http://msdn.microsoft.com/en-us/library/system.enum.aspx

解説 (0)