Я просто ищу любой пример, что эти два метода дают разные результаты. Прежде всего, я посещаю msdn page и запустить код из него с незначительными изменениямиToLower vs ToLowerInvariant
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
вызовов во всех существующих культурах.
Вопрос: есть ли какая-либо строка, которая дает разные результаты для этого теста?
Вы видели [этот другой вопрос] (http://stackoverflow.com/q/16797597/50447) или [этот ответ] (http://stackoverflow.com/a/26895380/50447)? –
«Турецкая проблема» http://blog.codinghorror.com/whats-wrong-with-turkey/ –
Еще один приятный читать http://www.moserware.com/2008/02/does-your-code-pass- turkey-test.html – Dolgsthrasir