Open In App

How to sort an Array in C# | Array.Sort() Method | Set – 4

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:
 



Example:
 




// C# program to demonstrate the
// Array.Sort(Array) method
using System;
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Initialize two array.
        string[] arr = {"A", "E", "D",
                  "C", "F", "B", "G"};
 
        // Display original values of the array
        Console.WriteLine("The original array:");
        Display(arr);
 
        // Sort the array using two array
        Array.Sort(arr);
 
        Console.WriteLine("\n\nAfter sorting :");
        Display(arr);
    }
 
    // Display function
    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:
 

Example:
 




// C# program to demonstrate the use of
// Sort<T>(T[], Int32, Int32, IComparer<T>)
// Method
using System;
using System.Collections.Generic;
 
class compare : IComparer<string> {
 
    public int Compare(string x, string y)
    {
        // Compare x to y
        return x.CompareTo(y);
    }
}
 
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Initializing array
        String[] arr = {"A", "D", "B",
                  "E", "C", "F", "G"};
 
        // Instantiate the IComparer object
        compare cmp = new compare();
 
        // Display the original values of the array
        Console.WriteLine("The original array:");
        display(arr);
 
        // sorting range is index 1 to 4
        // "cmp" is the IComparer<T> object
        Array.Sort(arr, 1, 4, cmp);
 
        Console.WriteLine("\nAfter sorting the array using the IComparer:");
        display(arr);
    }
 
    // display function
    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: 
 

Example:
 




// C# program to demonstrate the use of
// Array.Sort<TKey, TValue>(TKey[], TValue[])
// Method
using System;
using System.Collections.Generic;
 
class compare : IComparer<string> {
 
    public int Compare(string x, string y)
    {
        // Compare x to y
        return x.CompareTo(y);
    }
}
 
// Driver Class
class GFG {
 
    // Main Method
    public static void Main()
    {
        // Initialize two array
        String[] arr1 = {"H", "J", "K",
                   "L", "I", "N", "M"};
 
        String[] arr2 = {"A", "E", "D",
                   "C", "F", "B", "G"};
 
        // Instantiate the IComparer object
        compare g = new compare();
 
        // Display original values of the array
        Console.WriteLine("The original order of"+
                       " elements in the array:");
 
        Display(arr1, arr2);
 
        // Sort the array
        // "arr1" is keys array
        // "arr2" is items array
        // "g" is IComparer<T> object
        Array.Sort(arr1, arr2, g);
         
        Console.WriteLine("\nAfter Sorting: ");
        Display(arr1, arr2);
    }
 
    // Display function
    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

 


Article Tags :