Вот два варианта решения этой проблемы:
- Построить
Dictionary<Country, string>
- Используйте
Country
перечисление и декорировать его с Description
атрибутом
Постройте a Dictionary<Country, string>
, например:
enum Country
{
UnitedStates,
Germany,
Hungary
}
Dictionary<Country, string> CountryNames = new Dictionary<Country, string>
{
{ Country.UnitedStates, "US" },
{ Country.Germany, "DE" }
{ Country.Hungary, "HU" }
};
static string ConvertCountry(Country country)
{
string name;
return (CountryNames.TryGetValue(country, out name))
? name : country.ToString();
}
Теперь вы можете использовать Dictionary<Country, string>
через статический ConvertCountry
метод, например:
var myCountry = ConvertCountry(Country.UnitedStates));
Используйте Country
перечисление и украсить его с атрибутом Description
, как это:
enum Country
{
[Description("US")]
UnitedStates,
[Description("DE")]
Germany,
[Description("HU")]
Hungary
}
Теперь вы можете используйте этот метод для получения значения атрибута Description
, например:
public static string GetDescription(Enum en)
{
Type type = en.GetType();
MemberInfo[] memInfo = type.GetMember(en.ToString());
if (memInfo != null && memInfo.Length > 0)
{
object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attrs != null && attrs.Length > 0)
{
return ((DescriptionAttribute)attrs[0]).Description;
}
}
return en.ToString();
}
Использование выше метода, например:
var myCountryDescription = GetDescription(Country.UnitedStates);
вероятно словарь. Полный список [здесь] (http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm) –