[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
2022-03-18 08:45:23
質問
どのような場面で
.First
を使いたいときと
.FirstOrDefault
をLINQで使用します。
-
を使いたいのはどんな時ですか?
.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);
解決方法は?
私なら
First()
シーケンスが少なくとも1つの要素を持つことが分かっている、または期待されている場合。言い換えれば、シーケンスが空であることは例外的なことである場合です。
使用方法
FirstOrDefault()
要素があったかどうかを確認する必要があることが分かっている場合。言い換えれば、シーケンスが空であることが合法である場合です。チェックのために例外処理に頼ってはいけない。例外処理に頼ってはいけません (これはバッドプラクティスであり、パフォーマンスを低下させる可能性があります)。
最後に
First()
と
Take(1)
は、その
First()
は要素そのものを返しますが
Take(1)
は、ちょうど1つの要素を含む要素の並びを返します。
関連
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] LINQ を使用して、ある List<> にある項目を別の List<> にない項目として取得する。
-
[解決済み] LINQを使用して、プロパティ値の最小または最大値を持つオブジェクトを選択する方法
-
[解決済み] LINQとLambdaでJoin/Whereを実現する
-
[解決済み】LinqでCast()とOftype()を使用するタイミングについて
-
[解決済み】C#のvarキーワードの使い方
-
[解決済み] FirstOrDefault。null 以外のデフォルト値
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み] Sequence has no elements' Exceptionの処理