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