【问题标题】:How to clear an array in Visual C#如何在 Visual C# 中清除数组
【发布时间】:2010-12-20 21:47:54
【问题描述】:

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

【问题讨论】:

标签: c# arrays


【解决方案1】:

您可以拨打Array.Clear:

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

或者,根据具体情况,您可能会发现只创建一个新数组会更清晰。尤其是,您无需担心其他代码是否仍具有对数组的引用并期望旧值存在。

我不记得曾经在我自己的代码中调用过Array.Clear - 这不是我需要的东西。

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

【讨论】:

  • 任何数组也实现了 non-generic IList 接口,该接口具有Clear 方法。说((IList)x).Clear(); 也会“清除”数组实例,尽管这不是很好documented。如果数组实际上是一维和零索引的,它还“神奇地”实现了通用的IList&lt;&gt; 接口,该接口具有 另一个 方法,也称为Clear。如果你说((IList&lt;int&gt;)x).Clear();,你会得到一个运行时异常! Array 中的这两个显式接口实现的行为不同,这是一个微妙之处。
  • 感谢您对一些引用数组的代码的评论!做 s1 = s2;和 Array.Clear(s2, 0, s2.Length),我花了一些时间才意识到我做了什么。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 2011-02-10
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
相关资源
最近更新 更多