Какую Версию StringComparer использовать

На самом деле, мы (в родной сети, компании, стоящей за wolkenkit), тоже столкнулись с этой проблемой.

Это на самом деле проблема, вызванная одним из последних обновлений для Windows 10. В этом обновлении появилась новая функция «Быстрый запуск», которая вызывает проблемы в Docker.

См. Эту проблему для получения дополнительной информации: https://github.com/docker/compose/issues/3277

В качестве быстрого решения вы можете перезапустить Docker. В качестве более долгосрочного решения вы можете отключить функцию «Быстрый запуск», см. https://github.com/docker/for-win/issues/953#issuecomment-342498223

[116 ] Надеюсь, это поможет

20
задан Ted Elliott 9 October 2008 в 17:10
поделиться

7 ответов

статья This MSDN касается всего, что Вы могли возможно хотеть знать в большой глубине, включая турецкую-I проблему.

Это было некоторое время, так как я считал его, таким образом, я прочь, чтобы сделать так снова. Увидимся за час!

12
ответ дан 29 November 2019 в 23:23
поделиться

Существует три вида компараторов:

  • Осведомленный о культуре
  • инвариант Культуры
  • Порядковый

Каждый компаратор имеет чувствительный к регистру , а также нечувствительный к регистру версия.

порядковый компаратор использует порядковые номера символов. Это - самый быстрый компаратор, он должен использоваться во внутренних целях.

А осведомленный о культуре компаратор рассматривает аспекты, которые характерны для культуры текущего потока. Это знает "турецкий язык i", "испанский LL", и т.д. проблемы. Это должно использоваться для строк UI.

инвариант культуры компаратор на самом деле не определяется и может привести к непредсказуемым результатам и таким образом никогда не должен использоваться вообще.

Ссылки

  1. Новые Рекомендации для Использования Строк в Microsoft.NET 2.0
31
ответ дан 29 November 2019 в 23:23
поделиться

Понятие "нечувствительных к регистру" является лингвистическим, и таким образом, оно не имеет смысла без культуры.

Посмотрите этот блог для получения дополнительной информации.

, Который сказал, говорите ли Вы просто о строках с помощью латинского алфавита затем, Вам, вероятно, сойдет с рук InvariantCulture.

, вероятно, лучше создать словарь с StringComparer. CurrentCulture, все же. Это позволит "Гџ" соответствовать "ss" в Вашем словаре под немецкой культурой, например.

3
ответ дан 29 November 2019 в 23:23
поделиться

StringComparer. OrdinalIgnoreCase немного быстрее, чем InvariantCultureIgnoreCase FWIW ("Порядковое сравнение, быстро, но нечувствителен к культуре" согласно MSDN.

необходимо было бы делать много сравнений для замечания различия, конечно.

1
ответ дан 29 November 2019 в 23:23
поделиться

Так как ключи являются Вашими известными фиксированными значениями, затем или InvariantCultureIgnoreCase или OrdinalIgnoreCase должны работать. Избегайте определенного для культуры, или Вы могли поразить некоторые более "забавные" вещи как "турецкий язык i" проблем. Очевидно, Вы использовали бы культурный компаратор, если бы Вы сравнивали культурные значения..., но он кажется, что Вы не.

1
ответ дан 29 November 2019 в 23:23
поделиться

Система. Наборы. Специализированный включает StringDictionary. Раздел Remarks состояний MSDN "Ключ не может быть пустым, но значение может.

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

В версии 1.0 Платформы.NET, этот класс использует чувствительные к культуре сравнения строк. Однако в версии 1.1 Платформы.NET и позже, этот класс использует CultureInfo. InvariantCulture при сравнении строк. Для получения дополнительной информации о том, как культура влияет на сравнения и сортировку, посмотрите Сравнение и Сортировку Данных для Определенной Культуры и Выполнения Нечувствительных к культуре Строковых операций.

0
ответ дан 29 November 2019 в 23:23
поделиться

Инвариантная Культура существует конкретно для контакта со строками, которые являются внутренними к программе и не имеют никакого отношения к пользовательским данным или UI. Это походит дело обстоит так для этой ситуации.

0
ответ дан 29 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

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