Лучшая структура для растущей коллекции объектов в C #? - PullRequest
4 голосов
/ 01 ноября 2011

Для моего класса игрового программирования я разрабатываю класс для персонажа игрока. Игрок может собирать бонусы на протяжении всей игры, которые удерживаются и могут использоваться всякий раз, когда игрок выбирает.

Я думал, что динамический массив будет работать хорошо, но мой опыт работы в C ++ (мы используем Unity в классе, который использует Java & C #), и я знаю, что освобождение памяти обрабатывается по-разному в C # (я знаю, что есть сборщик мусора, но не особо разбираюсь в том, как он функционирует). Посмотрев некоторое время в Интернете, я не смог найти ничего, что соответствовало бы нужной мне функциональности (или, если я это сделал, это было у меня над головой, и я этого не осознавал).

Если кто-то может перечислить структуру или структуры C #, которые были бы хороши для хранения растущей коллекции объектов, это было бы чрезвычайно полезно.

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Список - это, вероятно, самая простая структура, которую вы можете использовать, она похожа на динамический массив, который будет автоматически увеличиваться по мере добавления к нему объектов.Он строго типизирован, поэтому он будет содержать только объекты одного типа (если у вас есть какой-то интерфейс для бонусов, у вас может быть список IPowerUp экземпляров)

0 голосов
/ 01 ноября 2011

Начните с просмотра универсальных коллекций .NET . (Обобщения .NET по своей сути аналогичны шаблонам C ++.) Вам может пригодиться Список или Словарь , в зависимости от того, как вам нужно хранить и извлекать ваши объекты.

Поскольку у вас, вероятно, будут типы объектов, вы можете рассмотреть возможность использования словаря списков, где ключом будет строковый идентификатор или перечисление типов собранных объектов, а значением будет список экземпляров объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...