Array.Sort Method is used to sort elements in a one-dimensional array. There are 17 methods in the overload list of this method. Here we will discuss the following methods:
Sort(Array) Method
This method sorts the elements in an entire one-dimensional array using the IComparable implementation of each element of the Array.
Syntax: public static void Sort (Array arr);
Parameter:
arr: It is the one-dimensional array which is to be sorted.
Exceptions:
- ArgumentNullException: If the array null.
- RankException: If the array is multidimensional.
- InvalidOperationException: If one or more elements in array do not implement the IComparable interface.
Example:
csharp
using System;
class GFG {
public static void Main()
{
string [] arr = { "A" , "E" , "D" ,
"C" , "F" , "B" , "G" };
Console.WriteLine( "The original array:" );
Display(arr);
Array.Sort(arr);
Console.WriteLine( "\n\nAfter sorting :" );
Display(arr);
}
public static void Display( string [] arr)
{
for ( int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " " );
}
}
}
|
Output:
The original array:
A E D C F B G
After sorting :
A B C D E F G
Sort<T>(T[], Int32, Int32, IComparer<T>) Method
This method sorts the elements in a range of elements in an Array using the specified IComparer<T> generic interface.
Syntax: public static void Sort<T> (T[] arr, int start, int len, IComparer<T> comparer);
Here T is the type of the elements of the array.
Parameters:
arr: It is the one-dimensional array to sort.
start: It is the starting index of the range to sort.
len: It is the number of elements in the range to sort.
comparer: It is the IComparer<T> generic interface implementation to use when comparing elements.
Exceptions:
- ArgumentNullException: If the array is null.
- ArgumentOutOfRangeException: If the start index is less than the lower bound of array or length len is less than zero.
- ArgumentException: If start index and length len do not specify a valid range in array or the implementation of comparer caused an error during the sort.
- InvalidOperationException: If comparer is null.
Example:
csharp
using System;
using System.Collections.Generic;
class compare : IComparer< string > {
public int Compare( string x, string y)
{
return x.CompareTo(y);
}
}
class GFG {
public static void Main()
{
String[] arr = { "A" , "D" , "B" ,
"E" , "C" , "F" , "G" };
compare cmp = new compare();
Console.WriteLine( "The original array:" );
display(arr);
Array.Sort(arr, 1, 4, cmp);
Console.WriteLine( "\nAfter sorting the array using the IComparer:" );
display(arr);
}
public static void display(String[] arr)
{
foreach (String a in arr)
Console.WriteLine(a);
}
}
|
Output:
The original array:
A
D
B
E
C
F
G
After sorting the array using the IComparer:
A
B
C
D
E
F
G
Sort<TKey, TValue>(TKey[], TValue[]) Method
This method sorts a pair of Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the IComparable<T> generic interface implementation of each key.
Syntax: public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items);
Here, TKey is the type of the elements of the key array and TValue the type of the elements of the items array.
Parameters:
keys: It is the one-dimensional array that contains the keys to sort.
items: It is the one-dimensional array that contains the items that correspond to the keys in keys.
Exceptions:
- ArgumentNullException: If the keys is null.
- ArgumentException: If the items is not null and the lower bound of keys does not match the lower bound of items or items is not null and the length of keys is greater than the length of items.
- InvalidOperationException: If one or more elements in the keys array do not implement the IComparable<T> generic interface.
Example:
csharp
using System;
using System.Collections.Generic;
class compare : IComparer< string > {
public int Compare( string x, string y)
{
return x.CompareTo(y);
}
}
class GFG {
public static void Main()
{
String[] arr1 = { "H" , "J" , "K" ,
"L" , "I" , "N" , "M" };
String[] arr2 = { "A" , "E" , "D" ,
"C" , "F" , "B" , "G" };
compare g = new compare();
Console.WriteLine( "The original order of" +
" elements in the array:" );
Display(arr1, arr2);
Array.Sort(arr1, arr2, g);
Console.WriteLine( "\nAfter Sorting: " );
Display(arr1, arr2);
}
public static void Display(String[] arr1, String[] arr2)
{
for ( int i = 0; i < arr1.Length; i++)
{
Console.WriteLine(arr1[i] + " : " + arr2[i]);
}
}
}
|
Output:
The original order of elements in the array:
H : A
J : E
K : D
L : C
I : F
N : B
M : G
After Sorting:
H : A
I : F
J : E
K : D
L : C
M : G
N : B
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
13 Sep, 2021
Like Article
Save Article