gpt4 book ai didi

c# - 为什么不是所有国家都出现在 CultureInfo.GetCultures() 中?

转载 作者:可可西里 更新时间:2023-11-01 07:57:34 24 4
gpt4 key购买 nike

我正在使用此标准代码来填充国家/地区列表:

static void Main(string[] args)
{
List cultureList = new List();

CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);

foreach (CultureInfo culture in cultures)
{
try
{
RegionInfo region = new RegionInfo(culture.LCID);

if (!(cultureList.Contains(region.EnglishName)))
{
cultureList.Add(region.EnglishName);
Console.WriteLine(region.EnglishName);
}
}
catch (ArgumentException ex)
{
// just ignore this
continue;
}
}
}

我看到漏掉了一些国家。只是想知道这种情况的原因是什么?

最佳答案

答案是:按设计

CultureInfo.GetCultures 不是旨在成为世界上所有文化的完整而明确的列表。它只是旨在让您获得可以在计算机上找到的文化。

CultureInfo documentation说:

Remember that the culture names and identifiers represent only a subset of cultures that can be found on a particular computer. Windows versions or service packs can change the available cultures. Applications add custom cultures using the CultureAndRegionInfoBuilder class. Users add their own custom cultures using the Microsoft Locale Builder tool. Microsoft Locale Builder is written in managed code using the CultureAndRegionInfoBuilder class.


注意事项

MSDN 上可能有用的链接:

顺便说一句,您可以使用简单的 LINQ“命令”来缩短代码:

var regionInfos = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(c => new RegionInfo(c.LCID))
.Distinct()
.ToList();

关于c# - 为什么不是所有国家都出现在 CultureInfo.GetCultures() 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com