Heim > Backend-Entwicklung > C++ > .First() vs. .FirstOrDefault() in LINQ: Wann sollte ich jedes verwenden?

.First() vs. .FirstOrDefault() in LINQ: Wann sollte ich jedes verwenden?

Susan Sarandon
Freigeben: 2025-01-26 10:51:10
Original
619 Leute haben es durchsucht

.First() vs. .FirstOrDefault() in LINQ: When Should I Use Each?

Verwendungsszenarien von First() und FirstOrDefault() in LINQ

Die Methoden .First() und .FirstOrDefault() von LINQ sind funktional ähnlich, verhalten sich jedoch etwas anders. Schauen wir uns die Szenarien an, in denen die einzelnen Methoden geeignet sind.

Wann .First() verwendet werden sollte

Verwenden Sie .First(), wenn Sie sicher sind, dass die Sequenz immer mindestens ein Element enthält. Es wird das erste passende Element zurückgegeben. Wenn kein passendes Element gefunden wird, wird eine „InvalidOperationException“-Ausnahme ausgelöst. Diese Methode eignet sich, wenn eine leere Sequenz eine Ausnahme darstellt.

Wann .FirstOrDefault() verwendet werden sollte

Verwenden Sie .FirstOrDefault(), wenn die Sequenz möglicherweise leer ist oder leer sein soll. Wenn ein passendes Element vorhanden ist, wird das erste passende Element zurückgegeben. Andernfalls wird der Standardwert für den Elementtyp zurückgegeben. Diese Methode sollte verwendet werden, wenn eine leere Sequenz ein gültiger Fall ist.

Wann .Take(1) verwendet werden sollte

Die

.Take(1)-Methode ähnelt .First(), weist jedoch einen wesentlichen Unterschied auf. Es wird nicht das Element selbst zurückgegeben, sondern eine Sequenz, die genau ein Element enthält. Diese Unterscheidung wird wichtig, wenn es um Folgen von Werttypen geht.

Beispiel

Bedenken Sie die folgende Reihenfolge:

<code class="language-csharp">var list = new List<int> { 1, 2, 3 };</code>
Nach dem Login kopieren

Verwenden Sie .First():

<code class="language-csharp">int result = list.Where(x => x % 2 == 0).First();</code>
Nach dem Login kopieren

Da es in der Sequenz eine gerade Zahl (2) gibt, gibt dieser Code den Wert 2 zurück. Wenn keine gerade Zahl vorhanden ist, wird eine Ausnahme ausgelöst.

Verwenden Sie .FirstOrDefault():

<code class="language-csharp">int result = list.Where(x => x % 2 == 4).FirstOrDefault();</code>
Nach dem Login kopieren

In diesem Fall stimmt keine gerade Zahl mit dem Prädikat überein, daher gibt .FirstOrDefault() den Standardwert einer Ganzzahl zurück, der 0 ist.

Verwenden Sie .Take(1):

<code class="language-csharp">var result = list.Where(x => x % 2 == 0).Take(1);</code>
Nach dem Login kopieren

Dieser Code gibt eine Sequenz zurück, die das einzelne Element 2 enthält.

Das obige ist der detaillierte Inhalt von.First() vs. .FirstOrDefault() in LINQ: Wann sollte ich jedes verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage