вы можете добавить теги Description к вашему перечислению, как показано ниже
public enum State
{
[Description("Karnataka")]
KARNATAKA = 1,
[Description("Gujarat")]
GUJRAT = 2,
[Description("Assam")]
ASSAM = 3,
[Description("Maharashtra")]
MAHARASHTRA = 4,
[Description("Goa")]
GOA = 5
}
, а затем получить назначенную строку описания из перечисления, как показано ниже
State stateVal = State.GOA;
string stateName = GetEnumDescription(stateVal);
, если у вас есть состояние, указанное в числе, как выупомянув комментарии, вы все равно можете легко привести его к типу enum.
int stateVal = 2;
string stateName = GetEnumDescription((State)stateVal);
GetEnumDescription()
, который возвращает строку для имени перечислений.
public static string GetEnumDescription(Enum enumVal)
{
System.Reflection.MemberInfo[] memInfo = enumVal.GetType().GetMember(enumVal.ToString());
DescriptionAttribute attribute = CustomAttributeExtensions.GetCustomAttribute<DescriptionAttribute>(memInfo[0]);
return attribute.Description;
}
ПРИМЕЧАНИЕ
Поскольку операция над enum обходится дешевле, чем строковые операции, строковое значение enum должно быть ограничено только целью отображения, а для внутреннего использования вы должны использоватьсам enum в логике.
Способ получения строкового значения enum более предпочтителен.Как если бы вы использовали enum во многих местах в вашем коде, и вам нужно изменить отображаемый текст, вам придется изменять текст только в одном месте.
Например,
Предположимвы использовали это перечисление в своем проекте, а затем понимаете, что ваше написание гуджарата неверно, если вы изменяете текст перечисления самостоятельно, вам нужно изменить его через весь код (к счастью, визуальная студия делает это немного проще), пока вы используетеОписание в качестве метки для отображения, вам нужно только изменить это только.
Или
, когда вы пробел в имени (который вы должны отобразить).
EG.«Джамму и Кашмир» - это еще один штат Индии.
Вы можете иметь сокращение (здесь «JK») в имени enum и завершить строку с пробелом в описании.