是否可以在 C# 中完全删除数组但不用 0 填充它:
for(int i=0;i<a.Length;i++)
{
a[i]=0;
}
Run Code Online (Sandbox Code Playgroud)
或者Array.Clear(a,0,a.Length);
但要以 List.Clear() 的方式清除它,使其大小再次像填充之前一样为 0。我尝试过
a=new int[15];,但以前的值仍然存在。谢谢!
C# 中的数组是固定长度的;您无法更改数组的大小。您可以分配不同大小的数组并复制元素以模拟调整大小(这正是List<T>内部所做的),但您不能“清除数组”,因为您可以将其减少到零个元素。
我尝试过
a=new int[15];,但以前的值仍然存在。
以前的值不可能仍然存在,因为这会分配一个包含int15 个元素的新数组,其中所有元素均为零。
请注意,这不会改变引用的数组a;相反,它创建一个新数组并将对其的引用存储在a. 因此,如果您从另一个数组变量初始化a,它们将引用同一个数组,但在将新数组分配给a另一个变量后将继续指向旧数组。也许这就是“先前的价值观”的来源。
var a = new int[] { 1, 2, 3 };
var b = a;
// a and b now reference the same array.
a = new int[] { 4, 5, 6 };
// a is now {4,5,6} but b remains {1,2,3}
Run Code Online (Sandbox Code Playgroud)