मैं एक और समाधान जोड़ना चाहता हूं: मेरे मामले में, मुझे ड्रॉप डाउन बटन सूची आइटम्स में Enum समूह का उपयोग करने की आवश्यकता है। इसलिए उनके पास स्थान हो सकता है, अर्थात अधिक उपयोगकर्ता के अनुकूल विवरण की आवश्यकता होती है:
public enum CancelReasonsEnum
{
[Description("In rush")]
InRush,
[Description("Need more coffee")]
NeedMoreCoffee,
[Description("Call me back in 5 minutes!")]
In5Minutes
}
एक सहायक वर्ग (हेल्परमेथोड्स) में मैंने निम्न विधि बनाई:
public static List<string> GetListOfDescription<T>() where T : struct
{
Type t = typeof(T);
return !t.IsEnum ? null : Enum.GetValues(t).Cast<Enum>().Select(x => x.GetDescription()).ToList();
}
जब आप इस सहायक को कॉल करते हैं तो आपको आइटम विवरणों की सूची मिल जाएगी।
List<string> items = HelperMethods.GetListOfDescription<CancelReasonEnum>();
ADDITION: किसी भी स्थिति में, यदि आप इस विधि को लागू करना चाहते हैं तो आपको जरूरत है: Enum के लिए GetDescription एक्सटेंशन। यही है वह जो मेरे द्वारा उपयोग किया जाता है।
public static string GetDescription(this Enum value)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
if (name != null)
{
FieldInfo field = type.GetField(name);
if (field != null)
{
DescriptionAttribute attr =Attribute.GetCustomAttribute(field,typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attr != null)
{
return attr.Description;
}
}
}
return null;
/* how to use
MyEnum x = MyEnum.NeedMoreCoffee;
string description = x.GetDescription();
*/
}