Я специально думаю о коллекции, которая соответствует контракту набора, но я думаю, что этот вопрос может быть применим к любому типу. Существуют ли коллекции в .NET Framework, которые предотвращают появление нулевых записей? Мне нужно конкретное поведение:
var set = new HashSet<object>();
bool added = set.Add(null);
Console.WriteLine(added); // prints "False"
Это не поведение встроенного HashSet<T>
. Существуют ли какие-либо коллекции, которые имеют это (или подобное) поведение, или мне лучше сворачивать мои собственные? Если последний, какой лучший способ это сделать? Должен ли я наследовать непосредственно из HashSet<T>
или просто обернуть его?
EDIT: Чтобы быть ясным, это просто праздное удивление. В основном потому, что я не могу думать о какой-либо причине, которую я когда-либо хотел бы разрешить null
в наборе объектов. У меня нет никакой особой необходимости.