Maison > développement back-end > C++ > Cast() vs OfType() dans LINQ : quand dois-je utiliser chacun ?

Cast() vs OfType() dans LINQ : quand dois-je utiliser chacun ?

Linda Hamilton
Libérer: 2025-01-17 04:41:12
original
819 Les gens l'ont consulté

Cast() vs. OfType() in LINQ: When Should I Use Each?

Choisir entre Cast() et OfType() dans Linq

Dans le domaine de LINQ, la conversion de types d'un ArrayList vers un IEnumerable peut être accompli avec deux méthodes : Cast() et OfType(). Comprendre leurs nuances est crucial pour sélectionner l'approche appropriée pour différents scénarios.

Cast() tente de convertir chaque élément de l'ArrayList comme s'il était du type spécifié. Tous les éléments qui ne peuvent pas être convertis avec succès entraîneront la levée d'une exception InvalidCastException.

OfType(), en revanche, renvoie uniquement les éléments qui peuvent être convertis en toute sécurité vers le type spécifié. Il ignore tous les éléments qui ne peuvent pas être convertis, filtrant efficacement l'ArrayList pour inclure uniquement les éléments du type souhaité.

Quand utiliser chaque méthode

  • Utilisez Cast() lorsque : Vous souhaitez imposer un type spécifique sur tous les éléments de l'ArrayList, même si cela signifie exclure les éléments qui ne peuvent pas être cast.
  • Utilisez OfType() lorsque : Vous souhaitez conserver la ArrayList d'origine et travailler uniquement avec des éléments qui peuvent être convertis en toute sécurité vers le type spécifié.

Exemple illustratif

Considérez ce qui suit ArrayList :

object[] objs = new object[] { "12345", 12 };
Copier après la connexion
  • objs.Cast().ToArray(); lèvera une InvalidCastException car le deuxième élément ne peut pas être converti en chaîne.
  • objs.OfType().ToArray(); renverra { "12345" }, car seul le premier élément peut être converti en chaîne.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal