LINQのOfTypeメソッド

任意の型を持つリスト(特殊な***Collectionや、IListで与えられるオブジェクト)から、特定クラスを引き出すためのLINQが、OfType<>メソッド。

using System;
using System.Linq;
...
ArrayList list = new ArrayList {1, 2L, 3, 4m, 5, 6D, 7, 8f};
var intList = new List(list.OfType<int>());
...

intListの中身は、{1,3,5,7}になる。キャストできないオブジェクトは無視される。
型でフィルタをかけるって感じかな。
intではなく、IDisposableなんかのインターフェースにも使えるので、それなりに便利。
なお、無視せずにキャストするためのメソッドも、Castという名前で用意されている。こっちの場合は、キャストできなければ、InvalidCastExceptionが発生する。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m