Typkonvertierung in LINQ: Detaillierte Erläuterung der Methoden Cast() und OfType()
LINQ (Language Integrated Query) ist ein leistungsstarkes Tool im .NET Framework, mit dem Entwickler Daten mithilfe vertrauter Syntax abfragen und transformieren können. Wenn Sie Elemente in ArrayList in IEnumerable
Cast()-Methode
Die Cast()-Methode wird verwendet, um alle Elemente in der ArrayList explizit in den angegebenen Typ zu konvertieren. Es wird versucht, jedes Element unabhängig von seinem tatsächlichen Typ in den Zieltyp umzuwandeln. Wenn die Umwandlung eines Elements fehlschlägt, wird eine InvalidCastException ausgelöst.
OfType()-Methode
DieOfType()-Methode konvertiert selektiv nur die Elemente, die sicher in den Zieltyp konvertiert werden können. Es gibt ein IEnumerable
Anwendbare Szenarien für die Methoden Cast() und OfType()
Die Wahl von Cast() oder OfType() hängt von Ihren spezifischen Anforderungen ab:
Cast() verwenden:
Verwendung von OfType():
Beispiel
Angenommen, Sie haben eine ArrayList mit Zeichenfolgen und Ganzzahlen:
<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Verwenden Sie Cast():
<code class="language-csharp"> try { string[] strArr = objs.Cast<string>().ToArray(); } catch (InvalidCastException) { // 处理异常 }</code>
In diesem Fall versucht Cast(), beide Elemente in Strings umzuwandeln. Da einer davon eine Ganzzahl ist, wird eine InvalidCastException ausgelöst.
Use OfType():
<code class="language-csharp"> string[] strArr = objs.OfType<string>().ToArray(); // 只包含 "12345"</code>
OfType() ruft erfolgreich Zeichenfolgenelemente aus der ArrayList ab und schließt ganzzahlige Elemente aus.
Wenn Sie den Unterschied zwischen Cast() und OfType() verstehen, können Sie bei der Verwendung von LINQ Typen effektiv konvertieren und Daten filtern und so die Genauigkeit und Zuverlässigkeit von Abfragen sicherstellen.
Das obige ist der detaillierte Inhalt vonCast() vs. OfType() in LINQ: Wann sollte ich jedes für die Typkonvertierung verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!