Une alternative au Dictionnaire<T,T>
Mon application requiert j'ai l'impression N le nombre de fois où la Valeur de X.
Donc, je peux le faire:
Dictionary<int, string> toPrint = new Dictionary<int, string>();
toPrint.Add(2, "Hello World");
...et, plus tard, je peut utiliser cette information pour imprimer 2 pages, à la fois avec la valeur de texte "Hello World".
Le problème que j'ai, est le Dictionnaire veut vraiment la première valeur de la Clé:
Dictionary<TKey, TValue>
Donc, si je veux ajouter des 2 pages avec le texte "Hello World" et puis un autre 2 avec "Goodbye World" j'ai un problème - deux d'entre eux ont un TKey valeur de 2, ce qui provoque une erreur d'exécution ("Un élément avec la même clé a déjà été ajouté").
La logique qui provoque une erreur:
Dictionary<int, string> toPrint = new Dictionary<int, string>();
toPrint.Add(2, "Hello World");
toPrint.Add(2, "Goodbye World");
J'ai encore besoin de ce concept et la logique de travail, mais évidemment je ne peux pas utiliser le type de Dictionnaire due à la Clé.
Quelqu'un a une idée d'un travail autour?
OriginalL'auteur Dave | 2012-06-30
Vous devez vous connecter pour publier un commentaire.
À l'aide d'une Liste<T> sera suffisant dans ce cas
Ce fut ma première pensée, mais pensé 12 personnes serait de me battre pour elle, alors je lui ai offert le n-uplet de la solution.
Ah... c'est toujours la solution facile n'est-ce pas.. ici j'ai été à la recherche dans la création d'un nouveau type de collection!!! Je vous remercie.
Parfois je me sens TELLEMENT comme un pilote de F1 sur un circuit.....
Remarque: Tuple est disponible à partir de .NET Framework 4.0
OriginalL'auteur Steve
Je pense qu'un Tuple, ce serait parfait pour ce travail.
Et... on pourrait facilement conclure dans une classe.
}
De grâce ne l'entend Pas de Tuple avant. Plus d'infos: msdn.microsoft.com/en-us/library/system.tuple.aspx
Je pense que les Tuples sont exactement ici, donc nous n'avons pas à créer de la classe spécifique pour tenir une Paire d'éléments.
OriginalL'auteur Chris Gessler
Vous pouvez utiliser les dictionnaires, mais la clé doit être la chaîne, et non l'int; c'est ce qui est unique, après tout!
Cela dit, vous ne faites pas de look-ups ainsi, un dictionnaire est inapproprié. Steve réponse est probablement le meilleur dans cette situation.
OriginalL'auteur Telastyn
Bien, je crois que vous avez quelques options ici...
1.) dans votre scénario, il semble que la chaîne elle-même est la clé, de sorte que vous pouvez inverser l'ordre de vos paramètres
2.) utiliser un Tuple ou même une classe personnalisée/struct si elle fait sens dans votre situation. L'utilisation de n-uplet Chris a déjà montré, donc je vais vous montrer la "solution" que j'ai à l'esprit.
et puis il suffit de créer une Liste de ces classes, fonctionne à peu près le même que le n-uplet, c'est juste un plus standardisée de la façon de faire cela, parce que peut-être vous aurez besoin de la même fonctionnalité sur d'autres endroits aussi bien ou peut-être souhaitez manipuler les données.
OriginalL'auteur walther