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

时间:2019-03-18 09:16:08

标签: c# arrays memory allocation

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

因此,要使用此代码创建此数组,请使用“ int [] values = new int [10];”

但是,如果我需要10个以上的值,或者如果我不知道我将拥有多少个值,该怎么办。可以是1、10或100。

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

是否有解决方法?

3 个答案:

答案 0 :(得分:3)

您可以只使用List并让它为您完成所有繁重的工作:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

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