Если это не ошибка, может ли кто-нибудь объяснить причину такого поведения? Действительно, кажется, что каждое нечетное число букв вернет 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