Случайное сравнение строк в C #

"." обычно не соответствует разрыву строки. Большинство движков регулярных выражений позволяют вам добавить флагов S (также называемый DOTALL и SINGLELINE), чтобы "." также соответствовал символам новой строки. Если это не удается, вы можете сделать что-то вроде [\S\s].

13
задан Rui Jarimba 15 April 2013 в 01:43
поделиться

6 ответов

Раздел Remarks статья MSDN должен объяснить вещи. По существу причина для совместимости через настройки различных культур.

6
ответ дан Noldorin 15 April 2013 в 01:43
поделиться
  • 1
    @mc10 мы можем просто использовать клон () и Вы не должны будете волноваться о дополнительных созданных элементах. var x = $('#container').clone().wrap('<p/>').parent().html();. Идея обертки является большой, и выделите менее сложный тогда большинство предоставленных решений. – Pinkie 24 June 2011 в 11:18

Главным, которым Вы должны быть обеспокоены, не является производительность, это - правильность, и от того аспекта метод, который Вы , вероятно хотите использовать для нечувствительного к регистру сравнения, также:

string.Compare(a, b, StringComparison.OrdinalIgnoreCase) == 0;

или

a.Equals(b, StringComparison.OrdinalIgnoreCase)

(Первый полезен, если Вы знаете, строки могут быть пустыми; последний более прост записать, знаете ли Вы уже, что по крайней мере одна строка является непустой. Я никогда не проверял производительность, но предполагаю, что это будет подобно.)

Ordinal или OrdinalIgnoreCase безопасная ставка, если Вы не знаете, что хотите использовать другой метод сравнения; получить информацию должно было принять решение , читает эту статью о MSDN.

23
ответ дан Greg Beech 15 April 2013 в 01:43
поделиться
  • 1
    That' s все еще создающий дополнительный элемент... – kevinji 24 June 2011 в 11:00

При сравнении строк Вы должны всегда , используют явного члена StringComparison. Строковые функции несколько непоследовательны в том, как они принимают решение сравнить строки. Единственный способ гарантировать используемое сравнение состоит в том, чтобы a) запомнить всех их (это включает и Вас и всех в Вашей команде), или b) использовать явное сравнение для каждой функции.

намного лучше быть явным и не полагаться на знание группы, являющееся прекрасным. Ваши товарищи по команде поблагодарят Вас за это.

Пример:

if ( StringComparison.OrdinalIgnoreCase.Equals(a,b) )

Используя ToLower для сравнения имеет 2 проблемы, о которых я могу думать первое, что пришло на ум

  1. , Это выделяет память. Функции сравнения не должны выделять память, если они абсолютно не имеют к.
  2. Строки могут быть понижены несколькими способами. Самый известный Ординал или Культура, Чувствительная ниже. Какой путь делает.ToLower () работа? Лично, я не знаю. Намного лучше передать явную культуру, чем полагаются на значение по умолчанию.
3
ответ дан JaredPar 15 April 2013 в 01:43
поделиться
  • 1
    Вы создаете 3 объекта jQuery в одном операторе. Хотя это работает, it' s излишество. – Pinkie 24 June 2011 в 06:27

ToLower () не является функцией сравнения, он помещает строку в нижний регистр. Когда == оператор используется на Строковых объектах в C#, он оптимизирован компилятором. В ядре Оба зависят от Системы. Строка. Равняется, как замечено в Отражателе.

0
ответ дан John T 15 April 2013 в 01:43
поделиться
  • 1
    Как дополнительное примечание, если Вы хотите отследить, куда перемещенный объект прибыл из (перемещение от положения 0 до положения 2) тогда, необходимо получить доступ к ui.item.index () значение в событии запуска и хранилище то значение. – David Boike 10 April 2012 в 14:23

Другая статья MSDN, которая предоставляет некоторую DOS и DON'Ts и рекомендации для какой метод сравнения использовать в различных случаях: Новые Рекомендации для Использования Строк в Microsoft.NET 2.0

0
ответ дан codybartfast 15 April 2013 в 01:43
поделиться
  • 1
    OP запрашивает необработанный HTML, представленный объектом jQuery, куда этот метод перемещает объект jQuery от одного места до другого. – Simon Robb 21 November 2013 в 12:56

Мог Ваше сообщение Ваш тест, который показывает, что вызов ToLower () быстрее, чем нечувствительное к регистру сравнение? Мои тесты показывают напротив быть верными! Независимо, точки других плакатов о правильности стоят.

0
ответ дан Jim Arnold 15 April 2013 в 01:43
поделиться
  • 1
    Существует ли способ найти поддающийся сортировке идентификатор отделения портлетов в #sortable отделении? – Frank 12 June 2013 в 12:43
Другие вопросы по тегам:

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