2011-10-31 94 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,其中键将是字符串标识符或枚举类型的收集对象,并且该值将是对象实例列表。