MyAnimals
中有“猫”,“狗”,“斑马”(和许多)(我无权访问定义的代码):
foreach (var x in MyAnimals){
Print( (x as Animal).Type);
}
其中只有2个被输出(Cat
和Dog
,而且很多都是空的)。如果我使用MyAnimals.OfType<Zebra>()
,那么它也会看到Zebra
。
1)怎么可能,第一个循环看不到所有成员?
2)如何在不为每个其他对象手动使用oftype()
的情况下获取迭代/所有包含的对象?