Méthode C# ToDictionary

Methode C Todictionary



La fonction ToDictionary en C# est une fonction d'extension LINQ qui vous permet de transformer une collection de données en un dictionnaire offrant un moyen clair et pratique de mapper les entités à des clés distinctes et des valeurs associées. Cela nécessite deux arguments, deux délégués ou expressions lambda, un pour choisir la clé et un autre pour choisir la valeur de chaque objet de la collection. Dans cet article, nous utiliserons quelques exemples de code C# pour démontrer les utilisations de la fonction ToDictionary.

Syntaxe:

Décomposons et comprenons chaque composant fourni dans la syntaxe suivante de la fonction C# ToDictionary un par un :



était dicté = collection. VersDictionnaire ( cléSélecteur , élémentSélecteur ) ;
  • Le mot-clé « var » est supprimé ici pour définir la catégorie de type du dictionnaire « dict » résultant. Dans la plupart des cas, il s'agit de Dictionary où K est le type de la clé et V est la catégorie de type de la valeur du dictionnaire.
  • L'élément « collection » représente la collection source que vous souhaitez convertir en dictionnaire « dict ». Il peut s'agir de n'importe quelle classe qui implémente l'interface IEnumerable, telle qu'une liste, un tableau ou un résultat de requête.
  • Le mot-clé « keySelector » est un délégué ou une expression lambda qui spécifie comment extraire la clé de chaque élément de la collection. Il récupère un élément de la collection comme argument et renvoie la valeur clé de cet élément. La clé doit être unique pour chaque élément de la collection, car les dictionnaires ne peuvent pas avoir de clés en double.
  • Le mot-clé « elementSelector » fait référence à un délégué ou à une expression lambda qui spécifie comment extraire la valeur de chaque élément de la collection. Il obtient également un élément de la collection comme argument et renvoie la valeur de cet élément.

Après avoir exécuté la fonction ToDictionary, vous disposerez d'un nouvel objet dictionnaire dans lequel chaque élément de la collection est représenté sous la forme d'une paire clé-valeur.







Exemple 1:

Prenons un nouveau départ dans ce guide en démontrant l'utilisation de la fonction ToDictionary en C# à l'aide d'un exemple de code. Passons en revue étape par étape.



Le code commence par l'importation des espaces de noms requis : System, System.Collections.Generic et System.Linq. Ces espaces de noms fournissent les classes et méthodes d'extension nécessaires pour travailler avec les collections et LINQ. La classe « Dummy » est définie qui contient la méthode « Main » de ce programme C#.



Dans la méthode « Main », une liste nommée « L » est créée. Cette liste contient trois éléments de chaîne qui représentent les noms de différents parfums au choix de l'utilisateur. La méthode ToDictionary est appelée sur la liste « L ». Il convertit la liste en dictionnaire. Chaque élément de chaîne de la liste sert à la fois de clé et de valeur dans le dictionnaire résultant.





Le dictionnaire est créé avec une comparaison de clés insensible à la casse à l'aide du paramètre StringComparer.OrdinalIgnoreCase qui est principalement utilisé pour spécifier une comparaison insensible à la casse lors de la vérification de l'existence des clés. Une instruction « if » vérifie si le dictionnaire contient la clé « bombe » tout en ignorant sa casse. Si la clé est trouvée, l'extrait de code dans la section « if » sera traité. À l'intérieur du bloc « if », l'instruction Console.WriteLine (« Bombshell exist ») est exécutée et imprime le message « Bombshell exist » sur la console.

en utilisant le système ;

en utilisant le système. Collections . Générique ;

en utilisant le système. Linq ;

mannequin de classe

{

statique vide Principal ( )

{

Liste < chaîne > L = Nouvelle liste < chaîne > ( ) { 'NoirOpium' , 'Bombe' , 'GucciFlora' } ;

était Parfum = L. VersDictionnaire ( X => X , X => vrai , Comparateur de chaînes. OrdinalIgnoreCase ) ;

si ( Parfum. ContientClé ( 'bombe' ) )

{

Console. Écrire une ligne ( 'La bombe existe' ) ;

}

}

}

Étant donné que le dictionnaire est créé avec une comparaison insensible à la casse, la clé « bombe » correspond à la clé « Bombshell » réelle dans le dictionnaire. En conséquence, le message « Bombshell exist » est imprimé sur la console comme affiché dans l'image de sortie ci-jointe suivante :



Exemple 2 :

Dans l'exemple de code précédent, nous avons montré comment une simple collection peut être convertie en dictionnaire via la fonction ToDictionary. Maintenant, nous allons passer à un petit exemple de code avancé de C# pour la démonstration des utilisations de la fonction C# ToDictionary. Décomposons le code ligne par ligne.

Cet extrait de code d'illustration commence par introduire les mêmes espaces de noms obligatoires : System, System.Collections.Generic et System.Linq. Ces espaces de noms fournissent les classes et méthodes d'extension requises pour travailler avec les collections et LINQ pour cet exemple de code. La classe « Dummy » est définie qui est un point d'entrée.

A l'intérieur de la méthode « Main » du langage C#, une liste nommée « L » est formée. Cette liste contient trois objets de la classe « Données » qui représentent les différents produits cosmétiques avec leurs prix et leurs marques. Chaque objet de données est initialisé à l'aide de la syntaxe d'initialisation d'objet. Les propriétés « Prix » et « Marque » de chaque objet sont définies avec des valeurs spécifiques.

Voici la méthode ToDictionary. Il est appelé ici sur la liste « L ». Il convertit la liste en un dictionnaire où la propriété « Prix » est utilisée comme clé et la propriété « Marque » est utilisée comme valeur. Le dictionnaire résultant est affecté à la variable « Dic » comme mentionné dans l'extrait de code fourni suivant. Une boucle « foreach » est lancée pour appeler les paires clé-valeur du dictionnaire « Dic ».

À l'intérieur de la boucle, la clé et la valeur de chaque paire sont accessibles à l'aide des propriétés « Key » et « Value » de la structure KeyValuePair. L'instruction de fonction Console.WriteLine imprime chaque paire clé-valeur sur la console. La sortie est formatée à l’aide de l’interpolation de chaîne pour afficher séparément les informations sur le prix et la marque.

Ici, la classe « Data » est définie avec deux propriétés : « Price » (un entier qui représente le prix d'un produit cosmétique) et « Brand » (une chaîne qui représente le nom de marque d'un produit).

en utilisant le système ;

en utilisant le système. Collections . Générique ;

en utilisant le système. Linq ;

mannequin de classe

{

statique vide Principal ( )

{

Liste < Données > L = Nouvelle liste < Données > ( )

{

nouvelles données { Prix = 13000 , Marque = 'Huda Beauté' } ,

nouvelles données { Prix = 15000 , Marque = 'Charlotte Telburry' } ,

nouvelles données { Prix = 11000 , Marque = 'Nars' }

} ;

Dictionnaire < int , chaîne > Déc = L. VersDictionnaire ( p => p. Prix , p => p. Marque ) ;

pour chaque ( var v dans Dic )

{

Console. Écrire une ligne ( $ « Prix : {v.Key}, Marque : {v.Value} » ) ;

}

}

}

Données de classe

{

publique int Prix { obtenir ; ensemble ; }

chaîne publique Marque { obtenir ; ensemble ; }

}

Lorsque le code est exécuté, il crée une liste d'objets de données, convertit la liste en dictionnaire à l'aide de la méthode ToDictionary, puis affiche les paires clé-valeur du dictionnaire à l'aide de la boucle « foreach ».

Le résultat de cet exemple de code est fourni ci-dessous. Il affiche les prix et les marques des produits cosmétiques stockés dans le dictionnaire en fonction de propriétés spécifiques, offrant ainsi un moyen pratique d'organiser et d'accéder aux données par paires clé-valeur. La sortie du code précédent affiche trois enregistrements pour le dictionnaire :

Conclusion

Ce guide C# a démontré l'utilisation de la méthode C# ToDictionary via quelques illustrations de code basiques et précises. En offrant un mécanisme clair et expressif pour décrire les paires clé-valeur, la méthode ToDictionary facilite la transformation d'une collection en dictionnaire. Il s'agit d'un utilitaire C# puissant pour manipuler et transformer les données.