LINQ - 根据类型获取子集

Ian*_*ink 4 c# linq

我有一个List<Animal>其中包含类型的对象Cat,DogPig(为简单起见)

我希望List<Dog>从我的所有狗中选择所有的狗List<Animal>.

如何在LINQ中完成?

Ree*_*sey 9

你可以使用Enumerable.OfType<T>:

var dogs = animals.OfType<Dog>().ToList();
Run Code Online (Sandbox Code Playgroud)

(请注意,ToList()只需要制作一个List<Dog>.如果您需要IEnumerable<Dog>,可以将其关闭.)