我一直在审查以下链接
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo%28v=vs.71%29.aspx
但我仍然不明白如何使用 CultureInfo 类(例如“en”或“fr”....等)随机检索有效的 2 个字母的区域性值。
请帮忙。
谢谢
(我不确定你为什么想要这个,但是......)你可以通过使用CultureInfo.GetCultures获得随机文化,然后从结果中随机选择:
var allCultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
var random = new Random();
int index = random.Next(0, allCultures.Length);
var culture = allCultures[index];
string twoLetterCode = culture.TwoLetterISOLanguageName;
Run Code Online (Sandbox Code Playgroud)
请注意,这并没有考虑到具有相同 2 个字母代码的文化数量不是偶数。这将在所有文化中随机选择,但不是均匀地通过 2 个字母代码进行选择。如果你想要更随机的分布,你可以使用:
var uniqueCultureCodes = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(c => c.TwoLetterISOLanguageName)
.Distinct()
.ToList();
var random = new Random();
int index = random.Next(0, uniqueCultureCodes.Count);
string twoLetterCode = uniqueCultureCodes[index];
Run Code Online (Sandbox Code Playgroud)
这将创建两个字母代码的不同列表,然后从中随机选择。
编辑:如果您的目标只是创建给CultureInfo定的两个字母代码,例如“en”或“fr”,您可以执行以下操作:
CultureInfo culture = new CultureInfo("en");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |