LIX
LIX

Reputation: 1529

How to clear an array

I have a global variable int[] and I want to clear its data and fill it again in a loop.

How could this possible in C#?

Upvotes: 30

Views: 112044

Answers (6)

Jørn Schou-Rode
Jørn Schou-Rode

Reputation: 38346

The static Array.Clear() method "sets a range of elements in the Array to zero, to false, or to Nothing, depending on the element type". If you want to clear your entire array, you could use this method an provide it 0 as start index and myArray.Length as length:

Array.Clear(myArray, 0, myArray.Length);

Upvotes: 61

rouhollah ghasempour
rouhollah ghasempour

Reputation: 124

For two dimensional arrays, you should do as bellow:

Array.Clear(myArray, 0, myArray.GetLength(0)*myArray.GetLength(1));

Upvotes: 0

Janis Veinbergs
Janis Veinbergs

Reputation: 6988

Why not just create new array and assign it to existing array variable?

x = new int[x.length];

Upvotes: 4

MAS1
MAS1

Reputation: 1711

This is not correct answer for your post but you can use this logic according to your need. Here is a code Snippets taken from here

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();
   }
}

and output of this is:

Before: [0]: 1    [1]: 2    [2]: 3    [3]: 4    [4]: 5
After:  [0]: 1    [1]: 0    [2]: 0    [3]: 0    [4]: 5

Upvotes: 5

Fabian
Fabian

Reputation: 13691

Wouldnt it be easier to use a list instead.

public List<int> something = new List<int>();

And then:

something.Add(somevalue);

And to clear:

something.Clear();

Upvotes: 3

Pratik Deoghare
Pratik Deoghare

Reputation: 37172

  int[] x 
  int[] array_of_new_values

  for(int i = 0 ; i < x.Length && i < array_of_new_values.Length ;i++)
  {
        x[i] = array_of_new_values[i]; // this will give x[i] its new value
  }

Why clear it? Just assign new values.

Upvotes: 0

Related Questions