2013/03/05

C# Listからオブジェクトの要素を検索する


久々の更新

2回以上探したロジックなので自前でのっけます。

C# List<T>からオブジェクトの要素を検索する

オブジェクトのコレクションからオブジェクトのプロパティやらフィールドをキーに検索する方法について。

抽出方法として2点見つけた。
1.List<T>.Findとデリゲートで抽出
2.Linqを使って抽出

2.はイマイチLinqを理解していないためパス(ぇ

てわけで、お気楽に1.を記載

まずは、MSDN
http://msdn.microsoft.com/ja-jp/library/x0b5b5bc.aspx

Find以外にもFindAllだのFindLastだのがあるようだ。
目的に応じて使い分ければよし。

で、使い方については以下の通り。

※ Dataクラスにはプロパティ「ID」があるものとする。


例:ID=1であるDataオブジェクトをDatasコレクションから抽出する
int localID = 1; Data data = Datas.Find( delegate(Data d) { return d.ID == localID; } );
同様に複数とりたかった場合はFindAllを使えばいいし、Indexが一番大きいオブジェクトを取得したければ、FindLastを使えばよいということ。

いやぁ便利だねぇデリゲート。

他のやりたいこともそのうち追加しとこう

備忘録
・オブジェクトリストを一発ソート
・オブジェクトリスト内の存在確認