如何在Visual C#中清除数组

neu*_*cer 7 c# arrays

我有一系列的整数.他们从0开始,然后他们充满了一些价值观.然后我想将所有值设置回0,以便我可以再次使用它,或者只是删除整个数组,以便我可以重新声明它并从一个全0的数组开始.

Jon*_*eet 28

你可以调用Array.Clear:

int[] x = new int[10];
for (int i = 0; i < 10; i++)
{
    x[i] = 5;
}
Array.Clear(x, 0, x.Length);
Run Code Online (Sandbox Code Playgroud)

或者,根据具体情况,您可能会发现只需创建一个新数组就更清楚了.特别是,您不必担心其他代码是否仍然具有对数组的引用,并期望旧值存在.

我记不起Array.Clear用自己的代码调用了 - 这不是我需要的东西.

(当然,如果你要替换所有的值,你可以在不先清除数组的情况下这样做.)

  • 任何数组都实现了***非泛型***`IList`接口,它具有`Clear`方法.说`((IList)x).Clear();`也"清除"数组实例,虽然这不太好[记录](http://msdn.microsoft.com/en-us/library/bb340970.aspx ).如果数组实际上是一维的并且零索引,那么它也"神奇地"实现了通用的`IList <>`接口,该接口具有*另一个*方法,也称为"清除".如果你说`((IList <int>)x).Clear();`你得到一个运行时异常!"Array"中的这两个显式接口实现表现不同,这是一个微妙的问题. (2认同)