Dictionnaire avec les deux clés?
Je suis à garder la trace des valeurs dans une console. Deux personnes "duel" les uns contre les autres et j'ai été en utilisant un dictionnaire de garder les noms enregistrés avec les dégâts infligés.
var duels = new Dictionary<string, string>();
duels.Add("User1", "50");
duels.Add("User2","34");
Je suis en train de stocker à la fois les utilisateurs dans le même dictionnaire ligne, de sorte qu'il peut être vérifié que User1 est duel contre User2
. De cette façon, si un autre duel a commencé, il ne serait pas interférer avec User1
ou User2
.
duels.Add("KeyUser1","KeyUser2","50","34",.../*Other attributes of the duel*/);
J'ai besoin de deux clés pour que je puisse vérifier où l'utilisateur des dommages de l'ira. Les dégâts de la volonté de toujours aller vers l'autre clé--vice-versa.
Que puis-je faire pour faire ce travail?
Merci.
Je recommande l'utilisation de n-uplets pour cela. Voici un article qui pourrait vous conduire dans la bonne direction: stackoverflow.com/questions/1171812/multi-key-dictionary-in-c . Bonne chance!
Un utilisateur engagé dans plus d'un duel à la fois?
Est le duel impliquant "User1" et "User2" différents que le duel impliquant "User2" et "User1" ?
Non, ils cannot.@David B non, pas différent. Les Duels contre les 2 personnes sont interchangeables.
N-uplet peut appliquer, vous devez initialiser au début mais pas à gonfler au dernier moment.
Un utilisateur engagé dans plus d'un duel à la fois?
Est le duel impliquant "User1" et "User2" différents que le duel impliquant "User2" et "User1" ?
Non, ils cannot.@David B non, pas différent. Les Duels contre les 2 personnes sont interchangeables.
N-uplet peut appliquer, vous devez initialiser au début mais pas à gonfler au dernier moment.
OriginalL'auteur Kyle | 2012-02-27
Vous devez vous connecter pour publier un commentaire.
Nous allons faire quelques duels.
CreateSetComparer
permet le dictionnaire à utiliser les valeurs de l'ensemble pour l'égalité des tests.Et de trouver un duel:
OriginalL'auteur
Quelque chose de rapide.
Bien qu'une bonne solution à mon avis serait d'utiliser un mieux pensé UserScores objet que les pistes particulier "duel" de la session.
vin
etyetish
se battentviny
etetish
sont les combats? 🙂J'aime l'idée de les combiner ensemble. Je pense que je pourrais ajouter quelque chose comme un
username1+":"+username2
et de diviser le:
pour obteniruser[0]
etuser[1]
.Merci @PaulBellora, réponse mis à jour.
Aussi @Kyle n'oubliez pas d'ajouter un GetHashCode() et IEquatable.Equals() de la mise en œuvre.
OriginalL'auteur
Vous pouvez essayer de faire un type de données personnalisé pour la clé:
Ensuite utiliser un
Dictionary<DualKey<string>, string>
;Je n'ai pas essayé un dictionnaire intégré. Ne serait-ce pas dire avoir de clé différents dictionnaires?
Ah, vous avez raison 🙁 Mon erreur..
OriginalL'auteur
Car une seule personne peut être impliqué dans un duel à la fois, vous pouvez utiliser un seul dictionnaire directement "index" les deux points de terminaison dans tous les duels, quelque chose comme ceci:
C'est juste une idée de base, vous pourriez envisager d'habillage de cette fonctionnalité dans votre propre classe...
OriginalL'auteur