c # наследование коллекции

Есть ли в 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. У меня все еще были бы два отдельных, перекрывающихся списка, что желательно, однако добавление и удаление элементов могло бы стать сложным, в этом простом примере необходимость добавления или удаления из обеих коллекций в случае добавления и удаления собак.

Или я мог бы реализовать свою собственную коллекцию с этой функциональностью.

Ответы на вопрос(3)

Ваш ответ на вопрос