.NET 中的 GetCountries 未提供所有国家/地区?
GetCountries from .NET not delivering all countries?
当我使用以下代码(过去工作正常)时,我现在使用 .NET 4.6 得到一个列表,该列表不包括纳米比亚,但在过滤前约有 50 次包括 Yabuuti。知道为什么或发生了什么变化吗?
private void SetCountriesComboBox()
{
RegionInfo country = new RegionInfo(new CultureInfo("en-US", false).LCID);
List countryNames = new List();
foreach (CultureInfo cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
country = new RegionInfo(new CultureInfo(cul.Name, false).LCID);
countryNames.Add(country.DisplayName.ToString());
}
IEnumerable nameAdded = countryNames.OrderBy(names => names).Distinct();
foreach (string item in nameAdded)
{
comboBox1.Items.Add(item);
}
}
RegionInforeturn关于文化的信息,不是国家。 return 个国家/地区没有内置方法(因为它们可以不经常更改)
许多 RegionInfo
连接到多个 CultureInfo
。参见例如 https://ideone.com/yTfO8A 。例如印度的RegionInfo
有14个CultureInfo
。 瑞士的RegionInfo
有4个CultureInfo
.
请注意,您的代码是多余的:您重建 new CultureInfo(cul.Name, false).LCID
。更理智的事情是这样的:
private static void SetCountriesComboBox()
{
List<string> countryNames = new List<string>();
foreach (CultureInfo cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
RegionInfo country = new RegionInfo(cul.LCID);
countryNames.Add(string.Format("{0} ({1})", country.DisplayName, cul.DisplayName));
// countryNames.Add(country.DisplayName);
}
IEnumerable<string> nameAdded = countryNames.OrderBy(names => names).Distinct();
foreach (string item in nameAdded)
{
comboBox1.Items.Add(item);
}
}
当我使用以下代码(过去工作正常)时,我现在使用 .NET 4.6 得到一个列表,该列表不包括纳米比亚,但在过滤前约有 50 次包括 Yabuuti。知道为什么或发生了什么变化吗?
private void SetCountriesComboBox()
{
RegionInfo country = new RegionInfo(new CultureInfo("en-US", false).LCID);
List countryNames = new List();
foreach (CultureInfo cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
country = new RegionInfo(new CultureInfo(cul.Name, false).LCID);
countryNames.Add(country.DisplayName.ToString());
}
IEnumerable nameAdded = countryNames.OrderBy(names => names).Distinct();
foreach (string item in nameAdded)
{
comboBox1.Items.Add(item);
}
}
RegionInforeturn关于文化的信息,不是国家。 return 个国家/地区没有内置方法(因为它们可以不经常更改)
许多 RegionInfo
连接到多个 CultureInfo
。参见例如 https://ideone.com/yTfO8A 。例如印度的RegionInfo
有14个CultureInfo
。 瑞士的RegionInfo
有4个CultureInfo
.
请注意,您的代码是多余的:您重建 new CultureInfo(cul.Name, false).LCID
。更理智的事情是这样的:
private static void SetCountriesComboBox()
{
List<string> countryNames = new List<string>();
foreach (CultureInfo cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
RegionInfo country = new RegionInfo(cul.LCID);
countryNames.Add(string.Format("{0} ({1})", country.DisplayName, cul.DisplayName));
// countryNames.Add(country.DisplayName);
}
IEnumerable<string> nameAdded = countryNames.OrderBy(names => names).Distinct();
foreach (string item in nameAdded)
{
comboBox1.Items.Add(item);
}
}