J'essaie de représenter un tableau de bord pour une compétition et je suis aux prises avec les meilleures structures de données à utiliser.Quelles structures de données puis-je utiliser pour représenter une matrice de données 2D fortement typée dans .Net?
J'ai une liste des objets Player
, une liste des objets Round
, et pour chaque combinaison, je dois stocker un objet RoundScore
(il y a différentes parties au score pour un tour).
Ce que je voudrais est une Scoreboard
globale objet où ce qui suit est:
1 - Je peux accéder à une collection d'objets identifiés par RoundScore
Round
clés en fournissant un objet Player
. Par exemple, peut-être quelque chose comme:
public IDictionary<Round,RoundScore> PlayerScores(Player player) { ... }
2 - Je peux accéder à une collection d'objets identifiés par RoundScore
Player
clés en fournissant un objet Round
. par exemple:
public IDictionary<Player,RoundScore> RoundScores(Round round) { ... }
3 - Je peux accéder à un seul objet RoundScore
en fournissant un Player
et un Round
4 - Je peux ajouter un nouveau Round
et tous Players
aura une nouvelle RoundScore
pour ce tour avec défaut valeurs
5 - de même, je peux ajouter une nouvelle Player
et tous Rounds
aura un nouveau RoundScore
pour ce joueur avec des valeurs par défaut
Je suppose que ce que je suis vraiment pour une représentation d'une grille avec Rounds
sur un axe, Players
de l'autre, et RoundScores
au milieu.
Y a-t-il déjà une structure de données (ou une combinaison de structures de données) dans .Net que je peux utiliser ou devrais-je utiliser la mienne?
Vous pouvez ajouter un nouveau joueur qui aura un score à chaque tour: vous aurez aussi besoin de traiter un cas d'un cycle dans lequel un ou plusieurs joueurs sont absents: (c'est-à-dire qu'on pourrait être expulsé du jeu, un autre mis à l'écart par une blessure, un autre pourrait l'avoir remplacé par un autre, etc.)? A mon sens, il est bon de définir explicitement les types d'accès les plus fréquents aux données: vous optimisez donc ces types d'accès.Si vous allez obtenir des milliers de demandes pour un score total par joueur, mais peu de demandes pour qui a joué dans un tour donné, à mon humble avis, cela devrait influencer le design. best, – BillW
Si un joueur est absent pour un tour, il y a des règles qui définissent les valeurs dans le RoundScore de ce joueur pour ce round. En d'autres termes, il n'y aura pas d'entrées manquantes dans cette * Matrice * Les opérations les plus fréquentes consisteront à construire cet objet à partir d'entrées de la base de données et à transformer l'objet en une table HTML. Je n'ai pas besoin de gérer les substitutions, et je parle de <100 joueurs avec <100 rounds. – Damovisa