在C#中使用set-length数组
我是C#的新手,但在ActionScript 3中有很强的背景知识.
在AS3中,您可以像这样定义一个数组: var array:Array = []; 然后通过push()向该数组添加无限项: array.push(1); 我在C#中注意到你需要为数组定义一个永久(我认为)的长度,例如: string[] array = {"this","has","a","length","of","six"}; 要么: string[] array = new string[6]; 如果我尝试向数组添加新项目将超出此数组的长度,我将收到一个错误: array[6] = "failure"; 我发现很难从能够自由地添加/删除数组中的项目,到现在必须定义最大长度. 当一个数组可以包含0到10000个实体之间的任何地方时,我不确定如何在游戏环境中接近它. >我是否只是为了满足我所拥有的所有实际数量的实体而使数组长度非常长? 任何的意见都将会有帮助! 解决方法
你发现,阵列在C#中是固定大小的;
Resizing an array引用指定大小的新数组实例,并将数组中的项复制到新引用的实例中.
您在.NET中寻找的是generic collections,例如 var strings = new List<string>(); 现在您可以使用Add()向集合中添加字符串 strings.Add("string to add"); 在C#3中,引入了collection intializers,以便您可以更简洁地初始化集合 var strings = new List<string> { "string1","string2","string3" }; 创建泛型集合的实例时,它以默认大小开始; List< T>的默认大小在.NET 4中为0,虽然在添加第一项时增加到4(默认大小可能因不同的集合类型和框架版本而异,所以听起来默认大小是实现细节).集合通常使用双倍策略通过框架调整大小,也就是说,当集合达到容量而另一个项目正在尝试添加时,集合容量通常会加倍 – 这在通用集合的实现中得到了解决.你不需要关心的事情. 如果您想要记住它,那么当您向集合添加已知数量的项目或知道要添加的项目数量级时.在这种情况下,您可以考虑使用List< T>的重载构造函数.将int作为默认大小 var strings = new List<string>(500); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |