Exigences : Lisez les blogs techniques d’autres personnes, constatez que certaines collections appellent la méthode ToLookup, cette méthode n’a pas été modifiée, puis interrogez les documents pertinents pour apprendre l’utilisation de cette méthode d’extension. La méthode ToLookup retourne une valeur de ToLookup<TSource, TKey> un dictionnaire à plusieurs pour associer les clés à une collection de valeurs.
GroupBy vs. ToLookup
GroupBy et ToLookup sont tous deux des méthodes d’extension LINQ pour regrouper des collections, et la principale différence entre les deux réside dans le type de retour et l’utilisation.
La méthode GroupBy renvoie un objet IEnumerable<IGrouping<TKey, TElement>>, où TKey est le type qui représente la clé de groupement et TElement est le type qui représente le type d’élément. Cette méthode regroupe la collection selon le sélecteur de touche spécifié et retourne le résultat du regroupement sous forme d’objets IGrouping<TKey, TElement>. IGrouping<TKey, TElement> les objets représentent une collection d’éléments avec la même clé. Vous pouvez utiliser des boucles foreach ou des requêtes LINQ pour itérer sur des résultats groupés. La méthode GroupBy est une opération d’exécution différée qui n’exécute l’opération de regroupement réelle que lorsque vous commencez à itérer ses résultats.
La méthode ToLookup retourne un objet ILookup<TKey, TElement>, où TKey est le type qui représente la clé de groupement et TElement est le type qui représente le type d’élément. La méthode regroupe la collection selon le sélecteur de touche spécifié et retourne le résultat de regroupement sous forme d’objet ILookup<TKey, TElement>. Les objets ILookup<TKey, TElement> représentent une collection d’éléments ayant la même clé. Vous pouvez utiliser un indexeur ou une boucle foreach pour accéder aux résultats groupés. Contrairement à GroupBy, ToLookup est une action immédiate qui exécute immédiatement l’action de regroupement et retourne le résultat lorsqu’elle est appelée.
Exemple : Un élève est dans une classe, et une classe correspond à plusieurs élèves. La collection des élèves contient les informations sur les classes, et les élèves de chaque classe (ou de chaque classe spécifiée) sont générés selon les groupes de classes.
Le code est le suivant :
Comme montré ci-dessous :
Référence:La connexion hyperlientérée est visible.
|