advertise with us

How to Reverse a String Array in C#

Reversing an array is a common operation in programming, and C# provides multiple ways to reverse arrays effectively. In this article, we’ll explore several methods to reverse a string array in C#.


1. Using Array.Reverse Method

The simplest way to reverse an array in C# is by using the Array.Reverse method, which directly modifies the original array.

Example

using System;

string[] words = { "apple", "banana", "cherry", "date" };

Array.Reverse(words);

Console.WriteLine("Reversed array:");
foreach (string word in words)
{
Console.WriteLine(word);
}

Output

Reversed array:
date
cherry
banana
apple

Explanation

The Array.Reverse method is straightforward and modifies the array in-place, which means no new array is created. This is both memory-efficient and fast for most applications.


2. Using Enumerable.Reverse for a New Array

If you want to keep the original array intact and create a new, reversed array instead, you can use Enumerable.Reverse from the System.Linq namespace.

Example

using System;
using System.Linq;

string[] words = { "apple", "banana", "cherry", "date" };

string[] reversedWords = words.Reverse().ToArray();

Console.WriteLine("Reversed array (new array):");
foreach (string word in reversedWords)
{
Console.WriteLine(word);
}

Output

Reversed array (new array):
date
cherry
banana
apple

Explanation

Using Enumerable.Reverse() creates a reversed copy of the original array, which is useful if you need to maintain the original array order for further operations.


3. Using a for Loop to Reverse the Array

If you want to reverse the array manually without relying on built-in methods, you can use a for loop. This is also a good exercise in understanding array manipulation.

Example

using System;

string[] words = { "apple", "banana", "cherry", "date" };

string[] reversedWords = new string[words.Length];

for (int i = 0; i < words.Length; i++)
{
reversedWords[i] = words[words.Length - i - 1];
}

Console.WriteLine("Reversed array (manual for loop):");
foreach (string word in reversedWords)
{
Console.WriteLine(word);
}

Output

Reversed array (manual for loop):
date
cherry
banana
apple

Explanation

In this example, a new array reversedWords is created, and elements are assigned in reverse order by iterating over the words array.


4. Using a while Loop with Swapping

Another manual way to reverse an array is by swapping elements from the start and end until you meet in the middle. This approach reverses the array in-place, making it memory efficient.

Example

using System;

string[] words = { "apple", "banana", "cherry", "date" };

int start = 0;
int end = words.Length - 1;

while (start < end)
{
string temp = words[start];
words[start] = words[end];
words[end] = temp;
start++;
end--;
}

Console.WriteLine("Reversed array (in-place with swapping):");
foreach (string word in words)
{
Console.WriteLine(word);
}

Output

Reversed array (in-place with swapping):
date
cherry
banana
apple

Explanation

This method uses two pointers, start and end, which move toward each other, swapping elements at each step. It’s an in-place method, meaning it doesn’t require additional memory allocation for a new array.


5. Using Recursion to Reverse an Array

Recursion can also be used to reverse an array, although it’s more complex and less efficient for large arrays. However, it demonstrates the use of recursion well.

Example

using System;

string[] words = { "apple", "banana", "cherry", "date" };

void ReverseArrayRecursive(string[] arr, int start, int end)
{
if (start >= end)
return;

string temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;

ReverseArrayRecursive(arr, start + 1, end - 1);
}

ReverseArrayRecursive(words, 0, words.Length - 1);

Console.WriteLine("Reversed array (recursive):");
foreach (string word in words)
{
Console.WriteLine(word);
}

Output

Reversed array (recursive):
date
cherry
banana
apple

Explanation

In this recursive approach, we swap elements at the start and end indices, then call the function recursively with start + 1 and end - 1 until they meet in the middle.


Summary of Methods

MethodDescriptionIn-PlaceCreates New Array
Array.ReverseReverses array directly, modifies original arrayYesNo
Enumerable.ReverseCreates a new reversed array, retains original arrayNoYes
for loopCreates a reversed array manuallyNoYes
while loop (swap)Reverses array in-place using swappingYesNo
RecursionReverses array using a recursive approachYesNo

Conclusion

In C#, you have a variety of ways to reverse a string array, from using built-in methods like Array.Reverse to manually implementing a reverse operation with loops or recursion. Depending on your needs, you can choose the most efficient or memory-friendly approach to reverse arrays in your C# projects.


Need Help with Your C# Projects?

We offer expert support and development services for projects of any size. Contact us for a free consultation and see how we can help you succeed.

CONTACT US NOW