C# 是否有内置的区域性名称常量列表?
例如,我不能像这样将默认值设置为英语C# 是否有内置的区域性名称常量列表?,c#,cultureinfo,C#,Cultureinfo,例如,我不能像这样将默认值设置为英语 CultureInfo MyCulture = CultureInfo.ENGLISH; 或 我必须使用列表(或创建自己的枚举)引入字符串依赖项: 那么,是否已经有所有可用的文化信息的枚举或其他类型的列表?您可以使用System.Globalization类获取iso语言和地区名称: System.Globalization.CultureInfo[] cinfo = System.Globalization.CultureInfo.GetCulture
CultureInfo MyCulture = CultureInfo.ENGLISH;
或
我必须使用列表(或创建自己的枚举)引入字符串依赖项:
那么,是否已经有所有可用的
文化信息的枚举或其他类型的列表?您可以使用System.Globalization类获取iso语言和地区名称:
System.Globalization.CultureInfo[] cinfo = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures & ~System.Globalization.CultureTypes.NeutralCultures);
System.Globalization.RegionInfo ri = null;
foreach (System.Globalization.CultureInfo cul in cinfo)
{
try
{
ri = new System.Globalization.RegionInfo(cul.Name);
Console.WriteLine(cul.TwoLetterISOLanguageName+"-"+ri.TwoLetterISORegionName);
}
catch(ArgumentException)
{
continue;
}
}
你的问题是什么?IMO并不需要一个内置的列表,除非你想给用户一个选项来更改它。问题是什么?是否有内置的区域性列表?据我所知,没有类似的枚举,但如果您创建这样一个类并将其发布到此处,那将是非常感谢的。您应该使用神奇常量“en AU”
。但是,您可以搜索已安装的区域性,例如(使用Linq):var yourCulture=CultureInfo.GetCultures(cultureType.SpecificCultures)代码>。看到“包罗万象”总是让我畏缩,即使是在示例代码中(顺便说一句,太频繁地复制和粘贴到产品代码中)。请考虑仅捕获MSDN所记录的<代码> AguMutExtExt/Cuff>。您为什么要尝试创建<代码>区域信息< /代码>实例?您的cul.Name
或cul.ToString()
中已经有了格式[languagecode]-[CountryCode]
,所以请将其写出来。注意:您明确删除了没有国家代码部分的中立文化。
CultureInfo MyCulture = CultureInfo.getCultureInfo("en-AU");
System.Globalization.CultureInfo[] cinfo = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures & ~System.Globalization.CultureTypes.NeutralCultures);
System.Globalization.RegionInfo ri = null;
foreach (System.Globalization.CultureInfo cul in cinfo)
{
try
{
ri = new System.Globalization.RegionInfo(cul.Name);
Console.WriteLine(cul.TwoLetterISOLanguageName+"-"+ri.TwoLetterISORegionName);
}
catch(ArgumentException)
{
continue;
}
}