Я хочу сравнить два нечувствительных к регистру, но я не уверен в том, как это сделать. Строки имеют среднюю длину 20 и этот вопрос больше о состоянии искусства и не о лучшей производительностиЛучший способ сравнить две строки, игнорируя случай
Большая часть моего кода использует
bool output = "foo".ToLower() == "FOO".ToLower();
, который кажется немного старомодным для меня. Еще один способ, который я видел много раз:
bool output = Regex.IsMatch("foo", "FOO", RegexOptions.IgnoreCase);
Я думаю, это возможно, но RegEx не создан для таких простых вещей.
После этого 3 "хороший" осталось:
bool output = string.Compare("foo", "FOO", StringComparison.CurrentCultureIgnoreCase) == 0;
bool output = string.Compare("foo", "FOO", true) == 0;
bool output = "foo".Equals("FOO", StringComparison.CurrentCultureIgnoreCase);
Это вопрос, основанный на мнениях. Но на мой взгляд: 'string.Equals (" x "," y ", StringComparison.OrdinalIgnoreCase)' –
Source IndexOf не опция? – Prix
Также смотрите [здесь] (http://stackoverflow.com/questions/3121957/how-can-i-do-a-case-insensitive-string-comparison) и [здесь] (http://stackoverflow.com/ вопросы/6371150/сравнение-две строки-игнорирование-case-in-c-sharp) –