我有一个List<Animal>
,其中包含Cat
,Dog
和Pig
类型的对象(为简单起见)
我希望从我的List<Dog>
中选择所有狗成为新的List<Animal>
。
如何在LINQ中完成?
答案 0 :(得分:9)
您可以使用Enumerable.OfType<T>
:
var dogs = animals.OfType<Dog>().ToList();
(请注意ToList()
只需要制作List<Dog>
。如果您只需要IEnumerable<Dog>
,则可以将其关闭。)
答案 1 :(得分:2)
这样的事情应该有效。
var animals = new List<Animals> { new Dog(), new Cat(), new Pig(), }; //etc.
var dogs =
animals
.OfType<Dog>()
.ToList();