从List <>中查找特定类的对象

Mat*_*ury 3 c# generic-list

我有一个基类,比如说Fruits.那么我的那个,说几句子类Banana:Fruit,Apple:Fruit等等.

然后,我有一个不同类型的对象列表,香蕉,苹果,等等.看起来像这样:

List<Fruits> f = new List<Fruits>{new Banana(), new Banana(), new Apple(), new Banana()};
Run Code Online (Sandbox Code Playgroud)

我想要一个可以获取水果列表和类型的函数,并给我一个列表,列表中只包含该类型的对象.因此,如果我打电话find_obj(f, Banana),(或其他),它应该给我一个仅包含香蕉的列表.

我可能在这里表现出极度的无知,我道歉.这甚至可能吗?我知道如果我事先知道这个课,我可以做这样的事情:

public List<Fruit> GimmeBanana(List<Fruit> f)
{
     List<Fruit> Output=new List<Fruit>{ };
     foreach(Fruit fr in f)
     {
         if (fr is Banana){ Output.Add(fr); }
     }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何为Any课程做这项工作.

Mar*_*ers 12

这种方法已经存在于框架中 - OfType<T>:

List<Banana> bananas = f.OfType<Banana>().ToList();
Run Code Online (Sandbox Code Playgroud)