Sorting a String in C#

Sorting a string array in C# is accomplished using the Array.Sort() method, which arranges elements in alphabetical order. This method modifies the original array and uses lexicographic comparison by default.

Syntax

Following is the basic syntax for sorting a string array −

Array.Sort(arrayName);

For custom sorting, you can use an overloaded version −

Array.Sort(arrayName, StringComparer.OrdinalIgnoreCase);

Using Array.Sort() for String Arrays

The Array.Sort() method sorts string arrays in ascending alphabetical order. Here's how it works −

using System;

public class Program {
   public static void Main() {
      string[] values = { "tim", "amit", "tom", "jack", "saurav"};

      Console.WriteLine("Original array:");
      foreach (string value in values) {
         Console.Write(value + " ");
      }

      // sorting
      Array.Sort(values);
      Console.WriteLine("\nSorted array:");
      foreach (string value in values) {
         Console.Write(value + " ");
      }
      Console.WriteLine();
   }
}

The output of the above code is −

Original array:
tim amit tom jack saurav 
Sorted array:
amit jack saurav tim tom 

Case-Insensitive Sorting

For case-insensitive sorting, use the StringComparer.OrdinalIgnoreCase parameter −

using System;

public class Program {
   public static void Main() {
      string[] names = { "Alice", "bob", "Charlie", "david", "Eve"};

      Console.WriteLine("Original array:");
      foreach (string name in names) {
         Console.Write(name + " ");
      }

      // Case-insensitive sorting
      Array.Sort(names, StringComparer.OrdinalIgnoreCase);
      
      Console.WriteLine("\nSorted (case-insensitive):");
      foreach (string name in names) {
         Console.Write(name + " ");
      }
      Console.WriteLine();
   }
}

The output of the above code is −

Original array:
Alice bob Charlie david Eve 
Sorted (case-insensitive):
Alice bob Charlie david Eve 

Sorting in Descending Order

To sort strings in descending order, use Array.Reverse() after sorting −

using System;

public class Program {
   public static void Main() {
      string[] fruits = { "apple", "banana", "cherry", "date", "elderberry"};

      Console.WriteLine("Original array:");
      foreach (string fruit in fruits) {
         Console.Write(fruit + " ");
      }

      // Sort in ascending order first
      Array.Sort(fruits);
      // Then reverse for descending order
      Array.Reverse(fruits);
      
      Console.WriteLine("\nSorted (descending):");
      foreach (string fruit in fruits) {
         Console.Write(fruit + " ");
      }
      Console.WriteLine();
   }
}

The output of the above code is −

Original array:
apple banana cherry date elderberry 
Sorted (descending):
elderberry date cherry banana apple 

Comparison of Sorting Methods

Method Description Use Case
Array.Sort() Default ascending alphabetical sort Basic string sorting
Array.Sort() with StringComparer Case-insensitive or culture-specific sorting When case doesn't matter
Array.Sort() + Array.Reverse() Descending alphabetical order Reverse alphabetical listing

Conclusion

The Array.Sort() method provides an efficient way to sort string arrays in C#. Use the basic method for standard alphabetical sorting, add StringComparer for case-insensitive sorting, or combine with Array.Reverse() for descending order.

Updated on: 2026-03-17T07:04:35+05:30

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements