Сделайте HashSet <строка> нечувствительный к регистру

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

public void DoSomething(HashSet<string> set, string item)
{
    var x = set.Contains(item);
    ... 
}

Это - какой-либо способ сделать существующий HashSet нечувствительным к регистру (не создавайте новый)?

Я ищу решение с лучшей производительностью.

Править

Содержит может быть назван многократно. Таким образом, расширения IEnumerable не приемлемы для меня должный понизить производительность, чем собственный HashSet Содержит метод.

Решение

С тех пор ответ на мой вопрос нет, это невозможно, я создал и использовал следующий метод:

public HashSet<string> EnsureCaseInsensitive(HashSet<string> set)
{
    return set.Comparer == StringComparer.OrdinalIgnoreCase
           ? set
           : new HashSet<string>(set, StringComparer.OrdinalIgnoreCase);
}
60
задан 9 November 2016 в 00:02

1 ответ

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

set.Contains(item, StringComparer.OrdinalIgnoreCase);

, не будучи должен воссоздать Вас HashSet

-1
ответ дан 1 November 2019 в 10:15

Другие вопросы по тегам:

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