2012-03-19 8 views
6

可能性の重複:
How can I implement NotOfType<T> in LINQ that has a nice calling syntax?LinqのOfTypeの逆数ですか?

私はタイプFooないあるすべてのオブジェクトを反復処理するコレクションを持っています。基本的には、私はOfType<Foo>()の反対のものを希望します。これを行う適切な方法は何でしょうか?

これまで私が使用した:

var result = myList.Where(elem => !(elem is Foo)); 
+1

のために行われているように、あなたが拡張メソッドでこれをecnapsulateことができます。 –

答えて

0

この

var result = myList.Where(elem => (elem as Foo)==null) 

ようなものでしたが、この情報がお役に立てば幸いです。

+0

これはオリジナルと同じだと思います。 –

+0

これは '!(elem is Foo)'よりどのように優れていますか? –

+0

@DanielHilgarth:これは、パフォーマンスの観点から見れば、より速く、より高速です。しかし、機能的な観点からは、違いはありません。私は別の選択肢を提供しています。 – Tigran

9

コードに間違いはありません。

あなたはこのコードを再利用したい場合は、あなたのやり方が良いものですOfType<Foo>()