【发布时间】:2015-06-11 10:28:57
【问题描述】:
我只是在寻找这两种方法产生不同结果的任何例子。首先,我访问msdn page,并从中运行代码并稍作改动
using System;
using System.Globalization;
using System.Linq;
class Program
{
static void Main()
{
string[] words = { "Tuesday", "Salı", "Вторник", "Mardi",
"Τρίτη", "Martes", "יום שלישי",
"الثلاثاء", "วันอังคาร" };
Console.BufferHeight = 1000;
var test = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(ci =>
{
string[] wordsToLower = words.Select(x => x.ToLower(ci)).ToArray();
string[] wordsToLowerInvariant = words.Select(x => x.ToLowerInvariant()).ToArray();
return new
{
Culture = ci,
ToLowerDiffers = !wordsToLower.SequenceEqual(wordsToLowerInvariant)
};
})
.ToArray();
foreach (var x in test)
{
Console.WriteLine("Culture {0}, ToLower and ToLowerInvariant produces different results: {1}", x.Culture, x.ToLowerDiffers);
}
Console.WriteLine();
Console.WriteLine("Difference exists for any ToLower call: {0}", test.Any(x => x.ToLowerDiffers));
}
}
但我有一个问题:此代码在所有现有文化中为 ToLower 和 ToLowerInvariant 调用生成相同的输出。
所以问题是:有没有任何字符串会为这个测试产生不同的结果?
【问题讨论】:
标签: c# .net localization globalization cultureinfo