2011-10-31 46 views
3

對於我的遊戲編程課,我正在設計一個玩家角色的課程。玩家可以在整個遊戲中收集能量提升,這些提升可以在玩家選擇時保持並使用。我認爲一個動態數組會很好,但我的背景是在C++(我們在類中使用Unity,它使用Java & C#),我知道在C#中處理內存的方式不同一個垃圾收集器,但並不真正瞭解它的功能)。在環視網絡一會兒之後,我找不到任何似乎符合我需要的功能的東西(或者如果我這樣做了,我就沒有意識到)。C#中越來越多的對象集合的最佳結構?

如果有人可以列出C#結構或結構,這對於存儲不斷增長的對象集合非常有用,它將非常有用。

+0

閱讀關於C#集合:http://msdn.microsoft.com/en-us/library/system.collections.generic.aspx - 您可能正在查看['List '](http:// msdn .microsoft.com/en-us/library/6sh2ey19.aspx),它類似於C++的'std :: vector '並且實現了一個動態數組。或者您可能需要一個['Dictionary'](http://msdn.microsoft.com/zh-cn/library/xfhwa508.aspx),它實現了像'std :: map'這樣的鍵值關聯數組。 – birryree

+3

@birryree,請不要推薦人們使用.Net 1的非泛型集合,比如'ArrayList'。應該用'List '代替。 – svick

+1

@svick - 更新 - 我的Java方面展示。 – birryree

回答

3

List可能是您可以使用的最簡單的結構,它就像一個動態數組,它會在您向其中添加內容時自動增加。它是強類型的,所以它將只包含相同類型的對象(如果你有一些接口供你加電,你可以有一個IPowerUp實例列表)

+2

我不會說'List '*就像*一個動態數組。它*是一個動態數組,它周圍有薄薄的面紗。 – svick

+0

我同意那個svick ... –

0

首先看.NET's generic collections。 (.NET泛型在概念上與C++模板類似。)根據您需要如何存儲和檢索對象,ListDictionary可能對您有用。

由於您可能會有類型的對象,您可能會考慮使用List of Dictionary,其中鍵將是字符串標識符或枚舉類型的收集對象,並且該值將是對象實例列表。