编写以下代码将元素添加到已声明的数组中:
static void Main() {
string [] test1 = {"test", "test2"};
string [] test1 = new string {"test3", "test4"};
foreach(string x in test1)
{
Console.WriteLine(x);
}
}
作为回应,我收到一个错误:
main.cs(5,15): error CS0128: A local variable named "test1" is already defined in this scope
抱歉这个可能很愚蠢的问题(我只是在学习数组)。
数组元素的数量是在创建时设置的,不能更改。这是由于使用计算机内存的特殊性,您不能只更改分配的内存区域的大小。数组是一块严格连续的内存。操作员的一个角落不能有一半的阵列,而另一个角落则不能有第二个。
要“更改”数组的大小,您需要创建一个具有所需大小的新数组并从那里复制旧数组的数据。
就是这样,没有魔法。
还有一种方法
Array.Resize可以稍微简化该过程。乍一看,它似乎确实改变了数组的大小,但实际上它所做的与我在第一个代码片段中所做的完全一样——它创建一个新数组并从旧数组复制数据,并且将对新数组的引用放在旧变量中。同样,没有魔法。
还有可调整大小的集合,例如
List<T>,您可以向其中添加和删除元素,一般来说,执行任何操作与列表元素的组合,但里面是相同的数组,它巧妙地重新创建它们并复制数据来制作它方便您使用动态合成集合。在一种方法中,不能存在两个同名的局部变量。您有
Main2 个名为test1.至于数组:你不能改变数组的大小,它的大小是固定的,并且是在初始化时设置的。您只能创建一个新数组并从那里复制旧数组中的元素,然后添加新数组。但对于此类任务,列表等集合更适合。