Maison > développement back-end > C++ > Comment LINQ peut-elle générer toutes les combinaisons de chaînes possibles à partir de deux tableaux?

Comment LINQ peut-elle générer toutes les combinaisons de chaînes possibles à partir de deux tableaux?

DDD
Libérer: 2025-01-31 05:16:16
original
199 Les gens l'ont consulté

How Can LINQ Generate All Possible String Combinations from Two Arrays?

Utilisez LINQ pour générer toutes les combinaisons possibles

Dans la programmation, toutes les combinaisons d'éléments possibles sont souvent nécessaires à partir de plusieurs listes. Ce problème décrit une scène qui doit combiner deux tableaux pour créer un ensemble de chaîne.

Solution

Afin de générer toutes les combinaisons possibles du tableau, nous pouvons utiliser descartes pour accumuler la technologie. Cela implique la création d'une nouvelle liste, qui contient toutes les combinaisons d'éléments possibles dans le tableau d'entrée. La liste générée aura le nombre total d'éléments qui sont égaux à l'entrée de la longueur du nombre d'entrée.

LINQ (Enquête sur l'intégration du langage) fournit un moyen élégant d'exécuter l'accumulation de Descartes et de générer la combinaison requise. La clé consiste à utiliser l'opérateur ZIP, qui combine les éléments dans les deux séquences en une seule séquence d'éléments.

Le code suivant montre comment utiliser LINQ pour générer toutes les combinaisons possibles:

Ici, la fonction cartésianProduct génère les descartes des séquences créées par énumérable. range. Les symboles de calcul zip combinent les éléments de chaque séquence en une chaîne.

<code class="language-csharp">var arr1 = new[] { "a", "b", "c" };
var arr2 = new[] { 3, 2, 4 };

var result = from cpLine in CartesianProduct(
                 from count in arr2 select Enumerable.Range(1, count))
             select cpLine.Zip(arr1, (x1, x2) => x2 + x1);</code>
Copier après la connexion
Le résultat généré est une séquence d'une séquence de chaîne, indiquant la combinaison possible. Code puis itérez et imprimez-le à la console:

Cette méthode fournit une méthode qui génère directement la combinaison possible d'élément dans deux tableau. Il utilise la syntaxe d'expression de Linq et le principe de Descartes pour obtenir efficacement les résultats requis.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal