Enumのリストが欲しいときいつも使っているコードを紹介します。
やりたいこと
こういうEnumをリストですべて取得したい
ついでにデフォルト要素の排除は選択可能にする
public enum Test
{
Default = 0,
Banana = 1,
Apple = 2,
Orange = 3,
Melon = 4,
}
コード
public static List<T> GetList<T>(bool removeDefault = true) where T : Enum
{
var result = Enum.GetValues(typeof(T)).Cast<T>().ToList();
if (removeDefault)
{
result.Remove(default(T));
}
return result;
}
使い方
Debug.Log("デフォルト要素なし");
foreach (var t in EnumUtility.GetList<Test>())
{
Debug.Log(t.ToString());
}
Debug.Log("デフォルト要素あり");
foreach (var t in EnumUtility.GetList<Test>(false))
{
Debug.Log(t.ToString());
}
出力結果
使ってみてね