Есть ли в C # нечувствительный к регистру оператор равенства?

Я думаю, что при реализации другого класса он выглядит намного до дерева, чтобы получить надежную реализацию метода. Поскольку нет метода, называемого, он использует базовый класс. [f1]

, что догадка я не про в .Net

146
задан Jon Seigel 7 April 2010 в 02:21
поделиться

9 ответов

Попробуйте это:

string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase);
278
ответ дан John Feminella 7 April 2010 в 02:21
поделиться
string.Equals(StringA, StringB, StringComparison.CurrentCultureIgnoreCase);
9
ответ дан Erick 7 April 2010 в 02:21
поделиться
if (StringA.ToUpperInvariant() == StringB.ToUpperInvariant()) {

Люди сообщают, что ToUpperInvariant () быстрее, чем ToLowerInvariant ().

0
ответ дан Paul Wicks 7 April 2010 в 02:21
поделиться
System.Collections.CaseInsensitiveComparer

или

System.StringComparer.OrdinalIgnoreCase
15
ответ дан leppie 7 April 2010 в 02:21
поделиться

Можно использовать

if (stringA.equals(StringB, StringComparison.CurrentCultureIgnoreCase))
4
ответ дан Andy Mikula 7 April 2010 в 02:21
поделиться

Оператор? Нет, но я думаю, что можно изменить культуру так, чтобы сравнение строк не было чувствительно к регистру.

// you'll want to change this...
System.Threading.Thread.CurrentThread.CurrentCulture
// and you'll want to custimize this
System.Globalization.CultureInfo.CompareInfo

я уверен, что это изменит способ, которым строки сравниваются, равняется оператору.

3
ответ дан John Leidegren 7 April 2010 в 02:21
поделиться
string.Compare(string1, string2, true)
0
ответ дан user25623 7 April 2010 в 02:21
поделиться

или

if (StringA.Equals(StringB, StringComparison.CurrentCultureIgnoreCase)) {

, но необходимо быть уверены, что StringA не является пустым. Так, вероятно, лучше tu использование:

string.Equals(StringA , StringB, StringComparison.CurrentCultureIgnoreCase);

, поскольку John предложил

РЕДАКТИРОВАНИЕ: исправленный ошибка

7
ответ дан Grzenio 7 April 2010 в 02:21
поделиться

Существует много свойств на StringComparer статический класс, которые возвращают компараторы для любого типа чувствительности к регистру, которую Вы могли бы хотеть:

StringComparer Свойства

, Например, можно звонить

StringComparer.CurrentCultureIgnoreCase.Equals(string1, string2)

, или

StringComparer.CurrentCultureIgnoreCase.Compare(string1, string2)

Это немного более чисто, чем string.Equals или string.Compare перегрузки, которые берут StringComparison аргумент.

18
ответ дан Ryan Lundy 7 April 2010 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: