我的程序使用国家/地区定位您的 IP 地址。当您来自德国时,它会显示 DE,当您在美国时,它将显示 US 等。
现在我的问题是如何自动将字符串从 HU 转到匈牙利。我应该创建一个项目列表或类似的东西吗?
你看,我从一个网站http://api.hostip.info/country.php获取国家信息 你看到上面的 Get IP 按钮 Country: DE 我想在德国自动改变这个
我的程序使用国家/地区定位您的 IP 地址。当您来自德国时,它会显示 DE,当您在美国时,它将显示 US 等。
现在我的问题是如何自动将字符串从 HU 转到匈牙利。我应该创建一个项目列表或类似的东西吗?
你看,我从一个网站http://api.hostip.info/country.php获取国家信息 你看到上面的 Get IP 按钮 Country: DE 我想在德国自动改变这个
您可以创建一个字典并将键设置为您返回的结果,并将值设置为所需的国家/地区名称。在此处查看基本概述:教程
以下是解决此问题的两个选项:
Dictionary<Country, string>
Country
枚举并用Description
属性装饰它构建一个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>
via 静态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);