2015年05月31日

LINQ to Objectサンプル(07): 条件に一致する最初の要素を取得する

   このエントリーをはてなブックマークに追加 Clip to Evernote
コレクションを走査し、条件に一致する最初の要素を取得する例です。
文字列の配列から、長さが4の文字列(最初に見つかった文字列)を取得しています。 条件に一致しなかった場合は、null を としています。

■ループを使ったコード
string[] words = "The quick brown fox jumps over a lazy dog".Split(' ');
string ans = null;
foreach (var w in words) {
    if (w.Length == 4) {
        ans = w;
        break;
    }
}
Console.WriteLine(ans);

■LINQを使ったコード
string[] words = "The quick brown fox jumps over a lazy dog".Split(' ');
var word = words.FirstOrDefault(x => x.Length == 4);
Console.WriteLine(word);

FirstOrDefault メソッドを使うことで、一発で、答えを求めることができます。
First()メソッドもありますが、First()メソッドの場合は、条件を満たす要素が見つからない場合は、 InvalidOperationException 例外が発生します。
FirstOrDefault()メソッドの場合は、default(T) の値(参照型はnull)が返ります。

引数を指定しなかった場合、コレクションの最初の要素が取得できます。

First, FirstOrDefault と対応する 最後の要素を取得する Last, LastOrDefault も存在します。

 


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52419914