Я прочитал в CLR через C# Джеффри Рихтера, что String.ToUpperInvariant() быстрее, чем String.ToLowerInvariant(). Он говорит, что это связано с тем, что FCL использует ToUpperInvariant для нормализации строк, поэтому метод является ультраоптимизированным. Проведя пару быстрых тестов на моей машине, я согласен, что ToUpperInvariant() действительно немного быстрее.
Мой вопрос: знает ли кто-нибудь, как функция на самом деле оптимизирована на техническом уровне и/или почему те же оптимизации не были применены и к ToLowerInvariant().
Что касается «дубликат»: Предлагаемый «дубликат» вопрос на самом деле не дает ответа на мой вопрос. Я понимаю преимущества использования ToUpperInvariant вместо ToLowerInvariant, но мне хотелось бы знать, как/почему ToUpperInvariant работает лучше. Этот момент не рассматривается в «дубликате».
Подробнее здесь: https://stackoverflow.com/questions/186 ... rinvariant