Я пытаюсь представить табло для соревнований и борюсь с лучшими структурами данных для использования.
У меня есть список Player
объектов, список Round
объектов, и для каждой комбинации мне нужно хранить объект RoundScore
(в раунде есть разные части).
Что бы я хотел, это какой-то общий Scoreboard
объект, в котором содержится следующее:
1 - я могу получить доступ к коллекции RoundScore
объектов, идентифицированных ключами Round
, предоставив объект Player
. Например, может быть что-то вроде:
public IDictionary<Round,RoundScore> PlayerScores(Player player) { ... }
2 - я могу получить доступ к коллекции RoundScore
объектов, идентифицированных ключами Player
, предоставив объект Round
. например:
public IDictionary<Player,RoundScore> RoundScores(Round round) { ... }
3 - я могу получить доступ к одному RoundScore
объекту, указав Player
и Round
4 - я могу добавить новый Round
, и все Players
получат новый RoundScore
для этого раунда со значениями по умолчанию
5 - аналогично, я могу добавить новый Player
, и у всех Rounds
будет новый RoundScore
для этого игрока со значениями по умолчанию
Полагаю, что я действительно искал изображение сетки с Rounds
на одной оси, Players
на другой и RoundScores
в середине.
Есть ли какая-либо структура данных (или комбинация структур данных) уже в .Net, которую я могу использовать для этого, или мне придется свернуть свою собственную?