Ну, это, безусловно, имеет значение.Когда вы используете сравнение «игнорировать регистр», вы вызываете довольно большой кусок кода в .NET Framework, который знает, как работают правила оболочки в текущей культуре.Правила, которые очень интересны для гика бывшего коллекционера почтовых марок, таких как я, есть несколько довольно странных правил в зависимости от того, куда вы смотрите.Турецкая проблема I известна, парни Unicode должны были сделать для них явное исключение.
На самом деле это не код, это таблицы поиска.Это само по себе интересно, потому что для поддержки компилятора C # требуется MSFT для поддержки параметра командной строки / linkres.Опция компиляции, которую вы не можете использовать в своих собственных проектах.Он предназначен только для того, чтобы mscorlib мог найти файлы .nlp, таблицы преобразования для правил культуры.Сохраненный в том же подкаталоге GAC, что и mscorlib.dll, эффект опции компиляции.
Но я отвлекся.Само собой разумеется, что StringComparison.OrdinalIgnoreCase
немного быстрее, чем StringComparison.InvariantCultureIgnoreCase.Просто потому, что «инвариант» означает США, дом MSFT.Трудно измерить, это происходит в наносекундах.StringComparison.CurrentCultureIgnoreCase попадает в эти таблицы перевода.Смертельно медленно, когда вы впервые используете его, просто медленнее, когда вы используете их позже.