“aaaa”.StartsWith(“aaa”)返回false

如果这不是一个错误,那么任何人都可以解释这种行为背后的原因吗? 事实上,似乎每个奇数个字母都会返回false:

string test = "aaaaaaaaaaaaaaaaaaaa"; Console.WriteLine(test.StartsWith("aa")); Console.WriteLine(test.StartsWith("aaa")); Console.WriteLine(test.StartsWith("aaaa")); Console.WriteLine(test.StartsWith("aaaaa")); Console.WriteLine(test.StartsWith("aaaaaa")); Console.WriteLine(test.StartsWith("aaaaaaa")); 

在丹麦系统上执行时输出后的输出:

 True False True False True False 

这当然归功于您目前的文化。 您可能是丹麦语,其中aa被视为一封信。 如果你尝试改变文化..或案例,它应该工作。

我想我记得匈牙利文化和字母联想的类似行为

看看使用丹麦文本的String StartsWith()问题

例:

 using System; using System.Globalization; namespace Demo { public static class Program { public static void Main(string[] args) { System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK"); System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture; string test = "aaaaaaaaaaaaaaaaaaaa"; Console.WriteLine(test.StartsWith("aa")); Console.WriteLine(test.StartsWith("aaa")); Console.WriteLine(test.StartsWith("aaaa")); Console.WriteLine(test.StartsWith("aaaaa")); Console.WriteLine(test.StartsWith("aaaaaa")); Console.WriteLine(test.StartsWith("aaaaaaa")); } } } 

这打印出OP声称的内容。