sas*_*eve 14 .net c# cultureinfo
我使用此标准代码填充国家/地区列表:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我看到一些国家被遗漏了.只是想知道这种情况的原因是什么?
CultureInfo.GetCultures是不是设计成可以在世界上所有的文化的完整和明确的清单.它只是为了让您了解可以在计算机上找到的文化.
请记住,文化名称和标识符仅代表可在特定计算机上找到的文化的子集.Windows版本或Service Pack可以更改可用的文化.应用程序使用CultureAndRegionInfoBuilder类添加自定义文化.用户使用Microsoft Locale Builder工具添加自己的自定义文化.Microsoft Locale Builder使用CultureAndRegionInfoBuilder类以托管代码编写.
MSDN上可能有用的链接:
顺便说一句,您可以使用简单的LINQ'命令'缩短代码:
var regionInfos = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(c => new RegionInfo(c.LCID))
.Distinct()
.ToList();
Run Code Online (Sandbox Code Playgroud)
您没有获得所有文化:
CultureTypes.AllCultures & ~CultureTypes.NeutralCultures
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6203 次 |
| 最近记录: |