c#linqのfirst()とfirstordefault()の違いは何ですか?
first()は、要素が見つからない場合に例外をスローし、firstordefault()はデフォルト値を返します。 Sequenceが空ではないと予想される場合は、First()を使用し、FirstOrdeFault()を使用して空のシーケンスを優雅に処理します。
C#でLINQを使用する場合、 First()とFirstOrdeFault()は両方ともシーケンスから最初の要素を取得するために使用されますが、シーケンスに一致する要素が含まれていない場合、それらは異なる動作をします。
初め()
シーケンスの最初の要素または条件を満たす最初の要素を取得します。シーケンスが空の場合、または要素が条件に一致しない場合、 InvalidoperationExceptionがスローされます。
例:-
var first = numbers.First();
-numbers
が空の場合、例外をスローします -
var firstEven = numbers.First(n => n % 2 == 0);
- 偶数が存在しない場合はスローします
firstordefault()
シーケンスの最初の要素または条件に一致する最初の要素を返します。そのような要素が存在しない場合、タイプのデフォルト値を返します - 参照タイプまたはヌル可能false
値タイプのnull
、 int
の場合は0
、 bool
など。
-
var first = numbers.FirstOrDefault();
- 空の場合は0
を返します -
var firstEven = numbers.FirstOrDefault(n => n % 2 == 0);
- 一致しない場合は0
返します - 文字列のリストの場合:空の場合は
null
を返します
いつ使用するの?
シーケンスに常に少なくとも1つの要素が含まれていると予想される場合は、 first()を使用し、その不在は問題を示します。シーケンスが空になる可能性があり、例外なくそのケースを優雅に処理する場合は、 firstordefault()を使用します。
基本的に、重要な違いは例外処理です: first()は要素が見つからない場合にスローしますが、 firstordefault()はデフォルト値を返します。欠損データをロジックで処理するか、速く失敗させるかどうかに基づいて選択します。
以上がc#linqのfirst()とfirstordefault()の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

答えは、microsoft.extensions.configurationを使用してappsettings.jsonを読むことです。 1. appsettings.jsonを作成し、コピープロパティを設定します。 2。microsoft.extensions.configuration.jsonパッケージをインストールします。 3。構成を構成Builderでロードします。 4.インデクサーまたはgetConnectionStringを介して値を読みます。 5.強く型と入力された構成クラスを使用するか、バインディングを取得することをお勧めします。

usestringforminimal、statictextoperations; usestringbuilderforfrequentModificationsinloopsorlge-scaleconcatenation stoepperformance anducememoryallocationを使用します。

httpclientは、頻繁に作成されるのではなく、長時間再利用する必要があります。ソケットの使い果たしを避けるために、ihttpclientfactoryインジェクション管理を使用することをお勧めします。 DIがない場合は、静的インスタンスを使用して、合理的なライフサイクルを確保します。

.NETモノマーをマイクロサービスに移動すると、1回限りの書き換えを避ける必要があります。 1.最初に、モバイルマシンの移行をクリアし、共通のトラップを避けて、チームがDevOpsと観察可能性の機能を確保することを保証します。 2。Stranglerモードを使用して、徐々に交換し、APIゲートウェイを介して新しいサービスに新しい機能をルーティングします。 3.ドメイン駆動型の設計を使用して、境界のあるコンテキストを識別し、ビジネスの境界に従ってサービスを分割し、データベースを分離します。 4.適切な通信方法を選択し、ユーザーリクエストにhttp/RESTを使用し、イベントにAzureserviceBusなどの非同期メッセージを使用します。 5.イベントの最終的な一貫性、SAGAモード、およびアウトボックスモードを通じて、クロスサービスデータの一貫性を確保します。 6.セリログ、オペンテレメトリー、およびその他のツールの早期統合日付を作成する

first()throwsAnexceptionifnoelementisfound、whilefirstordefault()returnSadeFaultValue; usefirst()whentheSequenceisexpectedTobenon-empty、andfirstordefault()tohandleempty seavecencefuly。

パブリックメンバーには、任意のコードでアクセスできます。 2.Privateはクラス内でのみアクセスできます。 3.保護されているため、クラスと派生クラスへのアクセスが可能になります。 4.内部は、同じアセンブリ内のアクセスに限定されます。 5.ProtectedEnternalalは、派生クラスまたは同じアセンブリへのアクセスに使用される保護および内部の連合です。

CancellationTokenSourceを作成して、キャンセルトークンを取得します。これは、他のスレッドまたはコンポーネントに通知して操作をキャンセルするために使用されます。 2。トークンをキャンセル(task.runなど)をサポートする非同期方法に渡します。タスクは、キャンセル要求を定期的にチェックして、優雅な終了を達成することができます。

patternMatchinginc#isafeatureusedtocheckobjectsagainstpatternsandextract information concisely.1.typepternsallowchecking andcastinginonestep、asshownwithif(valueisstringstr).2.constantpatternscomparevaluesagainstantcontantsdistantdireccingif(
