Maison >développement back-end >C++ >LINQ Casting : quand utiliser Cast() ou OfType() ?
Méthodes de conversion de type dans LINQ : comparaison de Cast() et OfType()
Lors de l'utilisation de LINQ pour la conversion de type, deux méthodes principales sont utilisées : Cast()
et OfType()
. Comprendre les nuances de ces deux approches est essentiel pour une manipulation efficace des données.
Méthode Cast()
La méthodeCast()
tente de convertir chaque élément de IEnumerable
vers le type cible spécifié. Il n'effectue aucune opération de filtrage ; il tente simplement de convertir tous les éléments. Si certains éléments ne peuvent pas être convertis avec succès, cela peut entraîner une exception InvalidCastException
.
Méthode OfType()
La méthodeOfType()
filtre les éléments en fonction de leur type avant de les convertir. Il renvoie un IEnumerable
contenant uniquement les éléments qui peuvent être convertis en toute sécurité vers le type cible.
Scénarios d'utilisation
Le moment d'utiliser chaque méthode dépend du comportement souhaité :
Quand utiliser Cast() :
Quand utiliser OfType() :
Exemple de description
Considérons l'exemple suivant :
<code class="language-csharp">object[] objs = new object[] { "12345", 12 }; IEnumerable<string> castCollection = objs.Cast<string>().ToArray(); // 抛出 InvalidCastException 异常 IEnumerable<string> ofTypeCollection = objs.OfType<string>().ToArray(); // 返回 { "12345" }</code>
Dans cet exemple, Cast()
tentera de convertir tous les éléments, provoquant une exception InvalidCastException
. Cependant, OfType()
filtre les éléments entiers et ne renvoie que "12345".
Résumé
En comprenant la différence entre Cast()
et OfType()
, les développeurs peuvent effectuer des opérations de conversion de type plus ciblées et plus efficaces dans les requêtes LINQ, ce qui donne lieu à un code plus clair et plus robuste.
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!