Подтвердить что ты не робот

Почему IndexOf не может найти символ N в сочетании с Y в венгерской культуре?

Функция IndexOf, вызываемая в строке, возвращает -1, хотя определенно соответствует.

string sUpperName = "PROGRAMOZÁSI NYELVEK II. ADA EA+GY. (BSC 08 A)";
string sUpperSearchValue = "N";

sUpperName.IndexOf(sUpperSearchValue); // Returns -1

sUpperSearchValue = "NY";
sUpperName.IndexOf(sUpperSearchValue); // Returns 13

sUpperName[13]; // 78 'N'
sUpperSearchValue[0]; // 78 'N'
sUpperName[13] == sUpperSearchValue[0]; // true

Есть ли у вас какие-либо идеи, почему он находит "NY", но не "N" сам по себе? Если я ищу любую другую букву в строке, она может ее найти, но не "N". Эта же проблема возникает и в нижнем регистре.

Если я набираю " N", не совпадают, то в " NY" он делает.

Изображение этого в консоли here

4b9b3361

Ответ 1

В венгерской .NET-культуре комбинация букв "ny" обозначает отдельное письмо, поэтому в вашем примере нет "N", только "NY".