如何在List <T>中获取特定的派生对象?

7 .net c# collections list filter

假设我有Fruit(List<Fruit> fruits = new List<Fruit>())的通用列表.我再添加一个连接对象(来自所有来源的Fruit) - ,,Banana 但在派生的对象不同的属性(如).AppleOrangeBanana.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);
Run Code Online (Sandbox Code Playgroud)

然后我可以这样做:

foreach(Banana banana in fruits)
    Console.Write(banana.IsYellow);
Run Code Online (Sandbox Code Playgroud)

但是在执行时当然这是无效的,因为IsYellowApple和Orange对象上没有属性.

我如何才能获得香蕉,苹果,橙子等List<Fruit>

Meh*_*ari 30

foreach(Banana b in fruits.OfType<Banana>())
Run Code Online (Sandbox Code Playgroud)