いろいろ調べてみましたが、いつ使用したらよいのか、いつLINQ と一緒に.First
使用したらよいのか、明確な答えは見つかりませんでした。.FirstOrDefault
いつ を使用するのでしょうか
.First
? 結果が返されなかった場合に例外をキャッチしたい場合のみでしょうか?var result = List.Where(x => x == "foo").First();
では、いつ を使用したいのでしょうか
.FirstOrDefault
? 結果がない場合に常にデフォルト タイプを使用したいのはいつでしょうか?var result = List.Where(x => x == "foo").FirstOrDefault();
ところで、タケはどうですか?
var result = List.Where(x => x == "foo").Take(1);
ベストアンサー1
シーケンスに少なくとも 1 つの要素があることがわかっている場合、または予想される場合に使用しますFirst()
。言い換えると、シーケンスが空であることが例外的な場合です。
要素があったかどうかを確認する必要があることがわかっている場合に使用しますFirstOrDefault()
。つまり、シーケンスが空であることが正当な場合です。チェックのために例外処理に頼るべきではありません。(これは悪い習慣であり、パフォーマンスに悪影響を与える可能性があります)。
First()
最後に、との違いは、Take(1)
はFirst()
要素自体を返すのに対し、 はTake(1)
1 つの要素だけを含む要素のシーケンスを返すことです。