Donc, je me suis un peu fourré avec C# récemment, et toutes les collections génériques m'ont un peu confus. Dire que je voulais représenter une structure de données où la tête d'un arbre était une paire valeur/clé, puis une liste facultative de paires de valeurs clés en dessous (mais pas plus de niveaux). Serait-ce approprié?Meilleure implémentation pour la structure de données de paires de valeurs clés?
public class TokenTree
{
public TokenTree()
{
/* I must admit to not fully understanding this,
* I got it from msdn. As far as I can tell, IDictionary is an
* interface, and Dictionary is the default implementation of
* that interface, right?
*/
SubPairs = new Dictionary<string, string>();
}
public string Key;
public string Value;
public IDictionary<string, string> SubPairs;
}
Ce n'est vraiment qu'un simple shunt pour transmettre des données.
Cela fonctionne très bien avec une instruction "using" (similaire à l'ancien typedef) afin d'économiser un peu de frappe et de rendre tout plus clair. Si vous utilisez constamment e. g. la paire (chaîne, chaîne). –
KeyValuePair NAME_HERE = new KeyValuePair ("defaultkey", "defaultvalue"); –
HasanAboShally
Pour développer le commentaire de @AndreasReiff: 'using NameValuePair = System.Collections.Generic.KeyValuePair;' près du début de chaque fichier nécessitant une structure '(chaîne, chaîne)'. Bien que je trouvais plus commode de créer une classe NameValuePair dans mon espace de noms: 'public class NameValuePair \t { \t \t KeyValuePair it; \t \t NameValuePair public (nom de chaîne, valeur de chaîne) \t \t { \t \t \t it = nouveau KeyValuePair (nom, valeur); Public string Nom {get {return it.Key; }} \t \t public string Valeur {get {return it.Value; }} \t} ' –
ToolmakerSteve