プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2019/04/26

[C#] Linq の First と Single の挙動

event_note2019/04/26 0:28

Linq の First FirstOrDefault Single SingleOrDefault の挙動についてまとめてみました。

検索結果に応じて以下のような動作をします。

見つからなかった 1つだけ見つかった 複数見つかった
First 例外 対象の値 最初に見つかった値
FirstOrDefault デフォルト値 対象の値 最初に見つかった値
Single 例外 対象の値 例外
SingleOrDefault デフォルト値 対象の値 例外

例外は InvalidOperationException が発生します。

また、OrDefault を使うと対象のデータが見つからなかった場合にデフォルト値が返ってきますが、例えば int0 が返ってきた場合には、対象のデータが見つからなかったのか、 0 というデータを見つけたのか、という判断がつかないため、注意が必要です。