Я новичок в С#, и я нашел что-то неожиданное в сравнении строк, которое я действительно не понимаю.
Может ли кто-нибудь объяснить мне, почему сравнение между символами дало противоположный результат как сравнение строк длины символа в следующем коде?
Я ожидал, что "9" < "="
будет true
(поскольку код Юникода из 9 (57) меньше, чем код юникода '=' (61)), но он неверен... Какова логика сравнения строки позади и почему это отличается от сравнения персонажей?
Код:
bool resChComp = '9' < '=';
bool resStrComp = String.Compare("9", "=") < 0;
Console.WriteLine($"\n'9' < '=' : {resChComp}, \"9\" < \"=\" : { resStrComp }");
Выход:
'9' < '=' : True, "9" < "=" : False