C# ですべての列挙値をループする方法は? [重複] 質問する

C# ですべての列挙値をループする方法は? [重複] 質問する

この質問に対する回答は既にここにあります:
C# で列挙型を列挙するにはどうすればよいですか? 26件の回答

public enum Foos
{
    A,
    B,
    C
}

の可能な値をループする方法はありますかFoos?

基本的に?

foreach(Foo in Foos)

ベストアンサー1

はい、使えますよGetValue‍‍‍s方法:

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

または、入力したバージョン:

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

私はずっと前に、まさにこのような場合に備えて、自分のプライベート ライブラリにヘルパー関数を追加しました。

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

使用法:

var values = EnumUtil.GetValues<Foos>();

おすすめ記事