Array Methods and Properties

Vaibhav • September 10, 2025

By now, you’ve learned how to declare arrays, initialize them, work with multidimensional arrays, and even explore jagged arrays. But arrays in C# are more than just containers for storing values - they come with built-in methods and properties that make them powerful and convenient to use.

In this article, we’ll take a detailed look at the essential methods and properties provided by the System.Array class in C#. These tools will make working with arrays more efficient and expressive. We’ll also discuss when to use them, their performance implications, and common pitfalls you should avoid.

Understanding the Array Class

Every array you create in C# is actually an object of the System.Array class. This means arrays inherit a rich set of members (methods and properties) that can be applied directly. You don’t need to import or do anything special - these capabilities are available automatically.

Arrays are special in that they are both a language feature (square bracket syntax) and a class (System.Array). This dual nature makes them unique compared to other data structures.

Key Array Properties

Let’s start by exploring the most important properties of arrays:

Length

The Length property tells you how many elements an array can hold. This is one of the most commonly used properties.


// Example: Using Length
int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine($"Array has {numbers.Length} elements.");
  

Output:


Array has 5 elements.
  

Rank

The Rank property returns the number of dimensions (also called “rank”) of an array. For a 1D array, it will return 1; for a 2D array, it will return 2, and so on.


// Example: Rank property
int[,] matrix = new int[3, 4];
Console.WriteLine(matrix.Rank); // Output: 2
  

GetLength()

For multidimensional arrays, GetLength(dimension) lets you find the length of a specific dimension. The dimension index starts from 0.


// Example: GetLength
int[,] grid = new int[5, 10];
Console.WriteLine(grid.GetLength(0)); // Rows: 5
Console.WriteLine(grid.GetLength(1)); // Columns: 10
  
While Length gives you the total number of elements in an array, GetLength() is more precise for multidimensional arrays when you want the size of a specific dimension.

Common Array Methods

Now let’s cover the essential methods provided by the Array class that you’ll frequently use.

Sort()

Sorting is one of the most common operations. The Array.Sort() method arranges the elements in ascending order (for numbers or strings).


// Example: Sorting an array
int[] scores = { 50, 20, 90, 10, 70 };
Array.Sort(scores);

foreach (int score in scores)
{
    Console.Write(score + " ");
}
  

Output:


10 20 50 70 90
  
Internally, Array.Sort() uses efficient algorithms such as Quicksort or Heapsort, depending on the scenario. For small arrays, the performance difference is negligible, but for very large datasets, sorting can be a costly operation.

Reverse()

Reverses the order of elements in the array. This can be handy after sorting when you want descending order.


// Example: Reverse
string[] names = { "Alice", "Bob", "Charlie" };
Array.Reverse(names);

foreach (string name in names)
{
    Console.WriteLine(name);
}
  

IndexOf()

The IndexOf() method searches for an element and returns its index. If the element is not found, it returns -1.


// Example: IndexOf
int[] values = { 5, 10, 15, 20 };
int index = Array.IndexOf(values, 15);

Console.WriteLine(index); // Output: 2
  

Copy()

Allows you to copy elements from one array into another.


// Example: Copy
int[] original = { 1, 2, 3, 4, 5 };
int[] copy = new int[5];
Array.Copy(original, copy, original.Length);

Console.WriteLine(string.Join(", ", copy));
// Output: 1, 2, 3, 4, 5
  
Copying an array this way creates a shallow copy. This means that if your array contains reference types (like objects), only the references are copied, not the objects themselves.

Clear()

The Clear() method resets all elements in the array to their default values (0 for numbers, null for reference types, etc.).


// Example: Clear
int[] data = { 1, 2, 3, 4, 5 };
Array.Clear(data, 1, 3);

Console.WriteLine(string.Join(", ", data));
// Output: 1, 0, 0, 0, 5
  

Performance Considerations

While array methods and properties are extremely useful, it’s important to understand their impact on performance:

  • Length and Rank are constant-time operations (very fast).
  • Sort() can be expensive for large arrays (O(n log n)).
  • Copy() runs in linear time relative to the number of elements copied.
  • Clear() is also linear, but efficient internally since it uses optimized memory operations.
Because arrays have a fixed size, methods like Sort() or Reverse() actually modify the existing array rather than creating a new one. This differs from some collection types like List<T>, which allow more flexibility.

When to Use Array Methods

The built-in methods and properties of arrays are perfect when:

  • You need fast, direct access to elements.
  • Your data size is known and fixed.
  • You want to leverage built-in functionality instead of writing your own loops.

However, as we’ll see in the upcoming articles, collections like List<T> and Dictionary<TKey, TValue> provide more advanced operations when flexibility is needed.

Summary

Arrays in C# aren’t just about storing data - they’re also about managing and manipulating that data efficiently. By understanding properties like Length, Rank, and GetLength(), and methods such as Sort(), Reverse(), IndexOf(), Copy(), and Clear(), you gain the ability to write more expressive and concise code.

Mastering these will serve as a strong foundation before we transition into the world of collections like lists, dictionaries, and stacks in the upcoming lessons.