给定一个特定的国家a地区代码,例如“CH”,我如何获得CultureInfo对象?特定的国家a地区代码是动态的(在运行时更改)。我只有国家a地区代码,我想知道是否可以仅从国家a地区代码创建CultureInfo对象。我获得哪个确切的文化(fr-CH/de-CH)并不重要。
我试着这样做:
CultureInfo c = CultureInfo.CreateSpecificCulture("CH");
是否可以从RegionInfo对象创建一个区域性?然后,它将如下所示:
RegionInfo r= new RegionInfo("CH");
CultureInfo c = CultureInfo.CreateSpecificCulture(r);
很明显,前面的例子并没有编译,它们只是给予了一个我试图实现的想法。
3条答案
按热度按时间vmdwslir1#
如果您只有国家代码,则可以使用类似下面的代码来获取与该国家/地区关联的所有文化信息:
编辑:在
CH
之前添加-
,以防止边缘情况,如@JeppeStigNielsen所指出的(见下面的评论)。ffvjumwh2#
您是否正在尝试建立CultureInfo对象?如下所示:
也许这个链接可以是有用的http://www.csharp-examples.net/culture-names/它显示所有的文化。
0s0u357o3#
当然,这是一件丑陋的事情,因为一个国家(包括你的例子
"CH"
瑞士)可以有许多语言。不过,我还是会给你两个丑陋的方法。第一个:
当用于您的特定示例
new RegionInfo("CH")
时,在我的.NET Framework版本和Windows版本上,它给出:第二个方法我将提供给你:
很明显,它使用
mscorlib.dll
的内部表示,我们永远不知道它是否会在未来的版本中崩溃。但它确实为您提供了一种选择特定区域性的方法。在我的计算机上,从new RegionInfo("CH")
得到it-CH: Italian (Switzerland)
。或者(如果您使用可空引用类型)使用大量
!
: