假设我有一个Fruit
(List<Fruit> fruits = new List<Fruit>()
)的通用列表。然后,我添加几个对象(全部从Fruit
派生)-Banana
,Apple
,Orange
,但在派生对象(例如Banana.IsYellow
)上具有不同的属性。
List<Fruit> fruits = new List<Fruit>();
Banana banana1 = new Banana();
Banana banana2 = new Banana();
Apple apple1 = new Apple();
Orange orange2 = new Orange();
fruits.Add(banana1);
fruits.Add(banana2);
fruits.Add(apple1);
fruits.Add(orange1);
然后我可以这样做:
foreach(Banana banana in fruits)
Console.Write(banana.IsYellow);
但是在执行时,这当然是无效的,因为在Apple和Orange对象上没有
IsYellow
-property。如何从
List<Fruit>
中仅获取香蕉,苹果,橙子等? 最佳答案
foreach(Banana b in fruits.OfType<Banana>())
关于c# - 如何在List <T>中获取特定的派生对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/980994/