假设我有一个Fruit(List<Fruit> fruits = new List<Fruit>())的通用列表。然后,我添加几个对象(全部从Fruit派生)-BananaAppleOrange,但在派生对象(例如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/

10-11 16:15