Enumに任意の文字列を割り振る
[C#] 何故 enum に拘りたくなるのか? | Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/3666
c# - Extension Methods for IEnumerable
http://stackoverflow.com/questions/5162389/extension-methods-for-ienumerableenum
c# - How can an Enumeration with Descriptions be cast into a Dictionary? - Code Review Stack Exchange
http://codereview.stackexchange.com/questions/12173/how-can-an-enumeration-with-descriptions-be-cast-into-a-dictionary
カスタム属性の記述
https://msdn.microsoft.com/ja-jp/library/84c42s56(v=vs.110).aspx
属性に格納されている情報の取得
https://msdn.microsoft.com/ja-jp/library/71s1zwct(v=vs.110).aspx
VB.NET版
既存の属性を使用。Enumならなんでもに改変してある。
便利そう!って思ってやったんだけど使った事はない。
Public Enum MyEnum <Description("Army of One")> One Two Three Four Five End Enum Public Module MyEnumExtention <Extension()> Public Function GetDescription(currentEnum As [Enum]) As String Dim fi = currentEnum.GetType().GetField(currentEnum.ToString()) Dim da = TryCast(Attribute.GetCustomAttribute(fi, GetType(DescriptionAttribute)), DescriptionAttribute) Return If(da IsNot Nothing, da.Description, currentEnum.ToString()) End Function End Module