読者です 読者をやめる 読者になる 読者になる

haru and...

猫のようにだらけ、犬のように遊ぶ。

【C#】列挙体のメンバ情報を一括で取得する方法

列挙体のメンバ数分ループさせたい場面に遭遇したら

格納したい列挙体

        /// <summary>
        /// 列挙体
        /// </summary>
        public enum FRUIT
        {
            Apple = 0,
            Pineapple,
            Orange,
            Melon,
            Peach,
            Grape
        }

 

格納方法

            // CastとToListでリストに格納
            List<FRUIT> list = typeof(FRUIT).GetEnumValues().Cast<FRUIT>().ToList();

            // apple(大文字小文字区別なし)が含まれているメンバだけ抽出
            List<FRUIT> listApple = list.Where(li => Enum.GetName(typeof(FRUIT),li).ToLower().IndexOf("apple") != -1).ToList();

            // おまけ listからDictionarynに格納
            Dictionary<int, FRUIT> dic = list.ToDictionary(li => ((int)li));