如何在不知道将存储多少值的情况下创建数组?

问题描述 投票:1回答:3

在C#中,我将值存储在数组中。

所以要创建这个数组,我正在使用这个代码'int [] values = new int [10];'

但是,如果我需要超过10个值,或者在我永远不知道我将拥有多少值的情况下,该怎么办?可以是1,10或100。

我理解我需要让编译器知道数组应该有多大,以便为它分配内存空间。

有办法解决这个问题吗?

c# arrays memory allocation
3个回答
3
投票

你可以使用List让它为你做所有繁重的工作:

List<int> values = new List<int>();

1
投票

数组必须有定义的长度。如果需要动态大小,请考虑使用List类。


0
投票

请看一看并研究“不可变对象”的概念

数组具有固定大小,如果需要具有动态大小的数组,最好创建扩展方法或为您工作的处理程序。

要完成的工作是获取数组,根据是否要添加或删除某些内容来创建具有新大小的新数组,并使用前一个数组中的数据填充新数组。这将创建一个新对象,而不是修改前一个对象,并确保不将项目推送到完整数组,或者使用大小大于其中项目的数组。

当然List类也可以工作,可能会解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.