Сделать HashSet <string> без учета регистра
У меня есть метод с параметром HashSet. И мне нужно сделать регистр без учета внутри него:
public void DoSomething(HashSet<string> set, string item)
{
var x = set.Contains(item);
...
}
Есть ли способ сделать существующий HashSet нечувствительным к регистру (не создавать новый)?
Я ищу решение с лучшей производительностью.
редактировать
Содержит можно вызывать несколько раз. Поэтому расширения IEnumerable для меня неприемлемы из-за более низкой производительности, чем собственный метод HashSet Contains.
Решение
Поскольку, ответ на мой вопрос НЕТ, это невозможно, я создал и использовал следующий метод:
public HashSet<string> EnsureCaseInsensitive(HashSet<string> set)
{
return set.Comparer == StringComparer.OrdinalIgnoreCase
? set
: new HashSet<string>(set, StringComparer.OrdinalIgnoreCase);
}