LINQ -获取基于类型的子集
本文关键字:类型 子集 获取 于类型 LINQ | 更新日期: 2023-09-27 18:08:34
我有一个List<Animal>
,其中包含类型为Cat
, Dog
和Pig
的对象(为简单起见)
我希望从我的List<Animal>
中选择所有的狗进入一个新的List<Dog>
。
如何在LINQ中完成?
您可以使用Enumerable.OfType<T>
:
var dogs = animals.OfType<Dog>().ToList();
(注意,ToList()
只需要生成List<Dog>
。如果你只需要IEnumerable<Dog>
,你可以把它去掉
这样应该可以。
var animals = new List<Animals> { new Dog(), new Cat(), new Pig(), }; //etc.
var dogs =
animals
.OfType<Dog>()
.ToList();