c#集合继承

ala*_*ere 2 c# collections inheritance set

c#中是否有一个集合支持继承,就像对象可能具有的概念一样,包含来自另一个元素的所有元素以及它们自己?

例如:

HashSet<animal> animals = new HashSet<animal>();
HashSet<dog> dogs = new HashSet<dog>();
animals.also_appears_to_include(dogs);
Run Code Online (Sandbox Code Playgroud)

因此,如果我为狗添加2个元素,向动物添加1个元素,那么看看动物有多少元素我会看到3.

或者我可以在每个中提到上面提到的3个元素,给动物3个元素和狗2.我仍然有两个单独的,重叠的列表是可取的,但是添加和删除元素可能变得棘手,在这个简单的例子中在添加和删除狗的情况下必须添加或删除两个集合.

或者我可以用这个功能实现我自己的集合.

Ric*_*lly 5

但是,MS没有提供可以实现您功能的任何内容

您可以保留一组动物并使用linq在飞行中过滤它:

var animals = new HashSet<Animal>();
var dogs = animals.OfType<Dog>();
Run Code Online (Sandbox Code Playgroud)