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

Cast() ou OfType() dans LINQ : quand dois-je utiliser lequel ?

Susan Sarandon
Libérer: 2025-01-17 04:56:09
original
310 Les gens l'ont consulté

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

La différence entre Cast() et OfType() dans LINQ : compréhension approfondie

Dans LINQ, lorsque vous travaillez avec des collections pouvant contenir des éléments de différents types, vous devrez peut-être convertir l'intégralité de la collection en un type spécifique. LINQ propose deux méthodes à cet effet : Cast() et OfType().

Méthode Cast()

Cast() tente de convertir tous les éléments de la collection vers le type spécifié. Si un élément ne peut pas être converti avec succès, une InvalidCastException est levée. Cette méthode est utile lorsque vous êtes sûr que tous les éléments de la collection peuvent être convertis dans le type requis.

Méthode OfType()

Contrairement à Cast(), OfType() renvoie uniquement les éléments de la collection qui peuvent être convertis en toute sécurité vers le type spécifié. Il n'essaie pas de convertir tous les éléments, donc aucune exception n'est levée. Cette méthode est utile lorsque vous souhaitez filtrer uniquement les éléments pouvant être convertis.

Exemple d'utilisation

Considérez le code suivant :

<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Copier après la connexion

Si vous essayez d'utiliser Cast() pour convertir ce tableau en une collection de chaînes, vous recevrez une InvalidCastException car l'un des éléments est un entier.

<code class="language-csharp">IEnumerable<string> someCollection = objs.Cast<string>();</code>
Copier après la connexion

Cependant, si vous utilisez OfType(), il ne renverra que les éléments qui peuvent être convertis en toute sécurité en chaîne.

<code class="language-csharp">IEnumerable<string> someCollection = objs.OfType<string>();</code>
Copier après la connexion

Dans ce cas, someCollection ne contiendra qu'un seul élément : "12345".

Résumé

Cast() et OfType() sont deux méthodes LINQ qui servent à des fins différentes lorsque vous travaillez avec des collections de types mixtes. Cast() tente de convertir tous les éléments, tandis que OfType() sélectionne uniquement les éléments dont la conversion est sûre. Utilisez Cast() lorsque vous êtes sûr du transtypage ; utilisez OfType() lorsque vous souhaitez simplement filtrer les éléments valides.

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