在Linq中反转OFType?

Joh*_*lip 7 c# linq

可能重复:
如何在LINQ中实现具有良好调用语法的NotOfType <T>?

我有一个集合,我想迭代所有类型的对象Foo.基本上我喜欢与之相反的东西OfType<Foo>().这样做的适当方法是什么?

到目前为止我用过:

var result = myList.Where(elem => !(elem is Foo));
Run Code Online (Sandbox Code Playgroud)

Mas*_*uso 9

您的代码没有错.

如果你想重用这个代码,你可以在扩展方法中对其进行封装,因为它已经完成了 OfType<Foo>()


Tig*_*ran 0

可能是这样的

var result = myList.Where(elem => (elem as Foo)==null)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

  • @Tigran:如果您只想检查一个对象是否属于某种类型 - *稍后不将其用作该类型* - `is` 实际上更干净,因为它更清楚地传达您的意图,并且正是用于此用途的关键字案件。 (2认同)