Conversion de type dans LINQ : explication détaillée des méthodes Cast() et OfType()
LINQ (Language Integrated Query) est un outil puissant du framework .NET qui permet aux développeurs d'interroger et de transformer des données en utilisant une syntaxe familière. Lorsque vous devez convertir des éléments d'ArrayList en IEnumerable
Méthode Cast()
La méthode Cast() est utilisée pour convertir explicitement tous les éléments de ArrayList vers le type spécifié. Il tente de convertir chaque élément en type cible, quel que soit son type réel. Si un élément ne parvient pas à être converti, une InvalidCastException est levée.
Méthode OfType()
La méthodeOfType() convertit sélectivement uniquement les éléments qui peuvent être convertis en toute sécurité vers le type cible. Il renvoie un IEnumerable
Scénarios applicables aux méthodes Cast() et OfType()
Le choix de Cast() ou OfType() dépend de vos besoins spécifiques :
Utilisation de Cast() :
Utilisation de OfType() :
Exemple
Supposons que vous ayez une ArrayList contenant des chaînes et des entiers :
<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Utiliser Cast() :
<code class="language-csharp"> try { string[] strArr = objs.Cast<string>().ToArray(); } catch (InvalidCastException) { // 处理异常 }</code>
Dans ce cas, Cast() tentera de convertir les deux éléments en chaînes. Puisque l’un d’eux est un entier, une InvalidCastException est levée.
Utiliser OfType() :
<code class="language-csharp"> string[] strArr = objs.OfType<string>().ToArray(); // 只包含 "12345"</code>
OfType() récupérera avec succès les éléments de chaîne de ArrayList et exclura les éléments entiers.
En comprenant la différence entre Cast() et OfType(), vous pouvez convertir efficacement les types et filtrer les données lorsque vous utilisez LINQ, garantissant ainsi l'exactitude et la fiabilité des requêtes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!