Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
