Heim > Backend-Entwicklung > C++ > Cast() oder OfType() in LINQ: Wann sollte ich welche verwenden?

Cast() oder OfType() in LINQ: Wann sollte ich welche verwenden?

Susan Sarandon
Freigeben: 2025-01-17 04:56:09
Original
310 Leute haben es durchsucht

Cast() or OfType() in LINQ: When Should I Use Which?

Der Unterschied zwischen Cast() und OfType() in LINQ: tiefgreifendes Verständnis

Wenn Sie in LINQ mit Sammlungen arbeiten, die Elemente unterschiedlichen Typs enthalten können, müssen Sie möglicherweise die gesamte Sammlung in einen bestimmten Typ konvertieren. LINQ stellt hierfür zwei Methoden zur Verfügung: Cast() und OfType().

Cast()-Methode

Cast() versucht, alle Elemente in der Sammlung in den angegebenen Typ zu konvertieren. Wenn ein Element nicht erfolgreich umgewandelt werden kann, wird eine InvalidCastException ausgelöst. Diese Methode ist nützlich, wenn Sie sicher sind, dass alle Elemente in der Sammlung in den erforderlichen Typ konvertiert werden können.

OfType()-Methode

Im Gegensatz zu Cast() gibt OfType() nur Elemente in der Sammlung zurück, die sicher in den angegebenen Typ umgewandelt werden können. Es wird nicht versucht, alle Elemente zu konvertieren, daher wird keine Ausnahme ausgelöst. Diese Methode ist nützlich, wenn Sie nur konvertierbare Elemente herausfiltern möchten.

Beispielverwendung

Bedenken Sie den folgenden Code:

<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Nach dem Login kopieren

Wenn Sie versuchen, Cast() zu verwenden, um dieses Array in eine Sammlung von Zeichenfolgen zu konvertieren, erhalten Sie eine InvalidCastException, da eines der Elemente eine Ganzzahl ist.

<code class="language-csharp">IEnumerable<string> someCollection = objs.Cast<string>();</code>
Nach dem Login kopieren

Wenn Sie jedoch OfType() verwenden, werden nur Elemente zurückgegeben, die sicher in einen String konvertiert werden können.

<code class="language-csharp">IEnumerable<string> someCollection = objs.OfType<string>();</code>
Nach dem Login kopieren

In diesem Fall enthält someCollection nur ein Element: „12345“.

Zusammenfassung

Cast() und OfType() sind zwei LINQ-Methoden, die bei der Arbeit mit Sammlungen gemischter Typen unterschiedliche Zwecke erfüllen. Cast() versucht, alle Elemente umzuwandeln, während OfType() nur Elemente auswählt, die sicher umzuwandeln sind. Verwenden Sie Cast(), wenn Sie sich bei der Typumwandlung sicher sind; verwenden Sie OfType(), wenn Sie nur gültige Elemente herausfiltern möchten.

Das obige ist der detaillierte Inhalt vonCast() oder OfType() in LINQ: Wann sollte ich welche 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