我有一个整数数组。它们最初为0,然后填充了一些值。然后我想将所有值都设置回0,以便可以再次使用它,否则只需删除整个数组,以便重新声明并从全0数组开始。
int[] x = new int[10];
for (int i = 0; i < 10; i++)
{
x[i] = 5;
}
Array.Clear(x, 0, x.Length);
根据情况,相反地,你可能会发现创建一个新的数组更加清晰。特别是,你就不需要担心其他代码是否仍然引用该数组并期望旧值还在那里了。
我无法回忆起自己在代码中曾经调用过 Array.Clear
- 这不是我所需要的东西。
(当然,如果你打算先替换所有值,你可以在不清空数组的情况下完成这个操作。)
IList
接口,该接口具有 Clear
方法。说 ((IList)x).Clear();
也会“清除”数组实例,尽管这并没有很好地记录。如果数组实际上是一维且从零开始索引,则它还“神奇地”实现了通用的 IList<>
接口,该接口还有另一个名为 Clear
的方法。如果你说 ((IList<int>)x).Clear();
,你会得到一个运行时异常!这是一个微妙的问题,Array
中这两个显式接口实现的行为是不同的。 - Jeppe Stig Nielsen