如何清除数组

LIX*_*LIX 12 c# arrays

我有一个全局变量int[],我想清除它的数据并在循环中再次填充它.

怎么可能在C#中这样做?

Jør*_*ode 35

静态Array.Clear()方法"将Array中的元素范围设置为零,为false或Nothing,具体取决于元素类型".如果要清除整个数组,可以使用此方法将其0作为起始索引和myArray.Length长度提供:

Array.Clear(myArray, 0, myArray.Length);
Run Code Online (Sandbox Code Playgroud)

  • @ 1_bug还有什么可能"清算"可能意味着什么? (5认同)

Fab*_*ian 9

不是更容易使用列表.

public List<int> something = new List<int>();
Run Code Online (Sandbox Code Playgroud)

然后:

something.Add(somevalue);
Run Code Online (Sandbox Code Playgroud)

并清楚:

something.Clear();
Run Code Online (Sandbox Code Playgroud)

  • -1:你不知道使用列表会更容易!问题是关于数组. (28认同)
  • @Adrian:同意!这个问题询问数组,而不是列表! (4认同)
  • 我同意 Fabian,列表是数组的一个很好的替代品,如果需要,可以很容易地转换为一个。建议更好的替代方案是回答问题的全部内容 - 由 OP 决定它是否是合适的答案。 (4认同)

MAS*_*AS1 5

这不是您帖子的正确答案,但您可以根据需要使用此逻辑。这是从这里获取的代码片段

using System;

class ArrayClear
{

   public static void Main()
   {
      int[] integers = { 1, 2, 3, 4, 5 };
      DumpArray ("Before: ", integers);
      Array.Clear (integers, 1, 3);
      DumpArray ("After:  ", integers);
   }

   public static void DumpArray (string title, int[] a)
   {
      Console.Write (title);
      for (int i = 0; i < a.Length; i++ )
      {
         Console.Write("[{0}]: {1, -5}", i, a[i]);
      }
      Console.WriteLine();
   }
}
Run Code Online (Sandbox Code Playgroud)

和输出是:

Before: [0]: 1    [1]: 2    [2]: 3    [3]: 4    [4]: 5
After:  [0]: 1    [1]: 0    [2]: 0    [3]: 0    [4]: 5
Run Code Online (Sandbox Code Playgroud)