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#?
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#?
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);
.Length property is read-only information, not a variable. You can't change the length of an array in c# after its construction.==. One could reasonably (absent the context of the question details) interpret "cleared array" as "empty array", and initialize to length 0. Dunno why; just meant to provide an alternative to 1_bug's comment.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
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();
Why not just create new array and assign it to existing array variable?
x = new int[x.length];
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.
For two dimensional arrays, you should do as bellow:
Array.Clear(myArray, 0, myArray.GetLength(0)*myArray.GetLength(1));
myArray.Length is a shorter way to say myArray.GetLength(0)*myArray.GetLength(1) for 2D arrays.