Linq找到所有类型的

Lie*_*oen 33 c# linq

有没有办法在列表中找到具有Linq/Lambda表达式的特定类型的所有项目?

更新:由于答案,我意识到这个问题不够具体.我需要一个只包含特定类型项目的新列表.在我的例子中,该类没有任何子类,因此不需要考虑继承.

Dav*_*kle 88

使用OfType<T>如下:

foreach (var bar in MyList.OfType<Foo>()) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 使用IEnumerable <T>扩展方法OfType <T>是微软推荐的方法. (4认同)

Ale*_*rey 37

这会吗?

list.Where(t => t is MyType);
Run Code Online (Sandbox Code Playgroud)

  • 但是你仍然需要转换结果,如果使用OfType,结果也会被转换. (9认同)