Существует ли в c # коллекция, которая поддерживает концепцию наследования, которую могут иметь объекты, включающие в себя все элементы как другого, так и самих себя?
Например:
HashSet<animal> animals = new HashSet<animal>();
HashSet<dog> dogs = new HashSet<dog>();
animals.also_appears_to_include(dogs);
Так, если бы я, например, добавил 2 элемента к собакам и 1 к животным, то посмотрел, сколько элементов у животных я бы увидел 3.
В качестве альтернативы я мог бы поместить ссылки на вышеупомянутые 3 элемента в каждом, даваяживотные 3 элемента и собаки 2. У меня все еще были бы два отдельных, перекрывающихся списка, что желательно, однако добавление и удаление элементов могло бы стать сложным, в этом простом примере добавление или удаление из обеих коллекций в случае добавления и удалениясобак.
Или я мог бы реализовать свою собственную коллекцию с этой функциональностью.