Я пытаюсь написать свою собственную версию строки, но пока не понимаю, как проверять равенство таких строк (унаследованных от IEnumerable) без учета регистра.Конечно, этот код:
Код: Выделить всё
if (_size != other._size)
return false;
for (var i = 0; i < _size && i < other._size; i++)
if (char.ToUpper(this[i]) != char.ToUpper(other[i]))
return false;
return true;
не оптимально. (Переменная _size означает длину, но является частной переменной, которую можно изменить внутри класса.) Этот код вызывает char.ToUpper() два раза, тогда как мне просто нужно сравнить эти символы. Какой способ лучше?
Примечание: проверка должна работать для всех систем письма, таких как латиница, кириллица, арабская и т. д.
Подробнее здесь:
https://stackoverflow.com/questions/788 ... ptimal-way