HomeSearch

C# Array.Clear Method, Zero out Array

This C# example program uses the Array.Clear method. Clear zeros out all elements.

Array.Clear

zeros out all elements. It provides a one-line, reliable and understandable way to empty or clear your array. It works on arrays of any type—including numbers, booleans, structs and class instances.

Example.

Probably the most common types of arrays use integers or other value types such as char. In the C# language, these types of arrays are always initialized to 0, but sometimes you need to reset the same array to zeros.Char Array

Next: We use Array.Clear to reset all elements in an int array to zero, without reallocating the array or changing its reference.

Int Array

Length: We use the Length property of the array as the third argument. This clears all elements.

Array Length
C# program that uses Array.Clear using System; class Program { static void Main() { int[] integerArray = new int[] { 4, 6, 8, 1, 3 }; // // Display the array // Console.WriteLine("--- Integer array before ---"); foreach (int value in integerArray) { Console.WriteLine(value); } // // Clear all elements in the array. // Array.Clear(integerArray, 0, integerArray.Length); // // Display the array // Console.WriteLine("--- Integer array after ---"); foreach (int value in integerArray) { Console.WriteLine(value); } } } Output --- Integer array before --- 4 6 8 1 3 --- Integer array after --- 0 0 0 0 0

Example 2.

This example shows an array of objects, each with two properties. The Array.Clear method is used to set the first two references in the array to null. We use the Math.Min method for bounds-checking, which avoids possible exceptions.Null

Here: The first argument to Array.Clear is the target array to clear. And the second specifies the offset to start clearing at.

Tip: The third argument uses Math.Min to clear either two elements or all elements, whichever is smaller.

Also: If you clear two elements and the array has one element, you will get an error. Math.Min prevents this exception.

Math.MinMath.Max
C# program that clears object array using System; class Program { class Employee { public string Name { get; set; } public int Salary { get; set; } } static void Main() { Employee[] employees = new Employee[3]; employees[0] = new Employee() { Name = "Bob", Salary = 10000 }; employees[1] = new Employee() { Name = "Susan", Salary = 13000 }; employees[2] = new Employee() { Name = "John", Salary = 20000 }; // // Display the employee array. // Console.WriteLine("--- Employee array before ---"); foreach (Employee employee in employees) { Console.Write(employee.Name); Console.Write(": "); Console.WriteLine(employee.Salary); } // // Clear first two elements in employee array. // Array.Clear(employees, 0, Math.Min(2, employees.Length)); // // Display the employee array. // Console.WriteLine("--- Employee array after ---"); foreach (Employee employee in employees) { if (employee != null) { Console.Write(employee.Name); Console.Write(": "); Console.WriteLine(employee.Salary); } else { Console.WriteLine("null"); } } } } Output --- Employee array before --- Bob: 10000 Susan: 13000 John: 20000 --- Employee array after --- null null John: 20000

Discussion.

You will see in the Microsoft documentation that boolean arrays are cleared by having all their elements assigned to false. Also, struct arrays will be cleared the same way as other arrays of System.ValueType instances.

Note: All struct fields will be set to null or 0, depending on their type. The default value can be found with the default operator.

StructDefault

Summary.

The Array.Clear method is frequently useful in programs. It provides a one-line way of resetting your entire array to its default values. It works on arrays of values and references.Array
Home
Dot Net Perls
© 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com.