How to sort an Array in C# | Array.Sort() Method Set – 3
Last Updated :
12 Mar, 2019
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, IComparer) Method
- Sort(Array, Array, IComparer) Method
- Sort(Array, Array) Method
Sort(Array, IComparer) Method
This method sorts the elements in a one-dimensional array using a specified IComparer.
Syntax: public static void Sort (Array arr, IComparer comparer);
Parameters:
arr: It is the one-dimensional array to sort.
comparer: It is the implementation to use when comparing elements.
Exceptions:
- ArgumentNullException: If the array arr is null.
- RankException: If the array arr is multidimensional.
- InvalidOperationException: If the comparer is null.
- ArgumentException: If the implementation of comparer caused an error during the sort.
Example 1:
using System;
using System.Collections;
class compare : IComparer {
public int Compare(Object x, Object y)
{
return ( new CaseInsensitiveComparer()).Compare(x, y);
}
}
class GFG {
public static void Main()
{
String[] arr = { "A" , "D" , "B" ,
"E" , "C" , "F" , "G" };
IComparer cmp = new compare();
Console.WriteLine( "The Original array:" );
display(arr);
Array.Sort(arr, 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
Example 2:
using System;
using System.Collections;
class compare : IComparer {
public int Compare(Object x, Object y)
{
return ( new CaseInsensitiveComparer()).Compare(x, y);
}
}
class GFG {
public static void Main()
{
int [] arr = {10, 1, 9, 8, 3,
4, 6, 5, 2, 7};
IComparer cmp = new compare();
Console.WriteLine( "The Original array:" );
display(arr);
Array.Sort(arr, cmp);
Console.WriteLine( "\n\nAfter sorting the " +
"array using the IComparer:" );
display(arr);
}
public static void display( int [] arr)
{
foreach ( int a in arr)
Console.Write(a + " " );
}
}
|
Output:
The Original array:
10 1 9 8 3 4 6 5 2 7
After sorting the array using the IComparer:
1 2 3 4 5 6 7 8 9 10
Sort(Array, Array, IComparer) Method
This method sorts a pair of one-dimensional array objects based on the keys in the first array using the specified IComparer.
Syntax: public static void Sort (Array keys, Array items, IComparer comparer);
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 each of the keys in the keys array.
comparer: It is the IComparer implementation to use when comparing elements.
Exceptions:
- ArgumentNullException: If the keys is null.
- RankException: If the keys array is multidimensional or the items array is multidimensional.
- ArgumentException: If the items is not null and the length of keys is greater than the length of items or the implementation of comparer caused an error during the sort.
- InvalidOperationException: If the comparer is null.
Example:
using System;
using System.Collections;
class comparer : IComparer {
public int Compare(Object x, Object y)
{
return ( new CaseInsensitiveComparer()).Compare(x, 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" };
IComparer g = new comparer();
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
Sort(Array, Array) Method
This method sorts a pair of one-dimensional array objects based on the keys in the first Array using the IComparable implementation of each key. Here, in the objects there are two array in which one contains the keys and the other contains the corresponding items.
Syntax: public static void Sort (Array keys, Array items);
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 each of the keys in the keys array.
Exceptions:
- ArgumentNullException: If the keys is null.
- RankException: If the keys array is multidimensional or the items array is multidimensional.
- ArgumentException: If the items is not null and the length of keys is greater than the length of items.
- InvalidOperationException: If the one or more elements in the keys array do not implement the IComparable interface.
Example:
using System;
class GFG {
public static void Main()
{
int [] arr1 = {7, 5, 2, 3, 1, 6, 4};
string [] arr2 = { "A" , "E" , "D" ,
"C" , "F" , "B" , "G" };
Console.WriteLine( "The original array:" );
Display(arr1, arr2);
Array.Sort(arr1, arr2);
Console.WriteLine( "\nAfter Sorting :" );
Display(arr1, arr2);
}
public static void Display( int [] arr1, string [] arr2)
{
for ( int i = 0; i < arr1.Length; i++)
{
Console.WriteLine(arr1[i] + " : " + arr2[i]);
}
}
}
|
Output:
The original array:
7 : A
5 : E
2 : D
3 : C
1 : F
6 : B
4 : G
After Sorting :
1 : F
2 : D
3 : C
4 : G
5 : E
6 : B
7 : A
Reference:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...