How to sort an Array in C# | Array.Sort() Method | Set – 4
Last Updated :
13 Sep, 2021
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
// 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:
- 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
// 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:
- 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
// 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
Similar Reads
Decorators in Python In Python, decorators are a powerful and flexible way to modify or extend the behavior of functions or methods, without changing their actual code. A decorator is essentially a function that takes another function as an argument and returns a new function with enhanced functionality. Decorators are
10 min read
AVL Tree Data Structure An AVL tree defined as a self-balancing Binary Search Tree (BST) where the difference between heights of left and right subtrees for any node cannot be more than one. The absolute difference between the heights of the left subtree and the right subtree for any node is known as the balance factor of
4 min read
Sliding Window Technique Sliding Window Technique is a method used to solve problems that involve subarray or substring or window. The main idea is to use the results of previous window to do computations for the next window. This technique is commonly used in algorithms like finding subarrays with a specific sum, finding t
13 min read
What is a Neural Network? Neural networks are machine learning models that mimic the complex functions of the human brain. These models consist of interconnected nodes or neurons that process data, learn patterns, and enable tasks such as pattern recognition and decision-making.In this article, we will explore the fundamenta
14 min read
Read JSON file using Python The full form of JSON is JavaScript Object Notation. It means that a script (executable) file which is made of text in a programming language, is used to store and transfer the data. Python supports JSON through a built-in package called JSON. To use this feature, we import the JSON package in Pytho
4 min read
ArrayList in Java Java ArrayList is a part of the collections framework and it is a class of java.util package. It provides us with dynamic-sized arrays in Java. The main advantage of ArrayList is that, unlike normal arrays, we don't need to mention the size when creating ArrayList. It automatically adjusts its capac
9 min read
Multithreading in Python This article covers the basics of multithreading in Python programming language. Just like multiprocessing , multithreading is a way of achieving multitasking. In multithreading, the concept of threads is used. Let us first understand the concept of thread in computer architecture. What is a Process
8 min read
Two Pointers Technique Two pointers is really an easy and effective technique that is typically used for Two Sum in Sorted Arrays, Closest Two Sum, Three Sum, Four Sum, Trapping Rain Water and many other popular interview questions. Given a sorted array arr (sorted in ascending order) and a target, find if there exists an
11 min read
Python Match Case Statement Introduced in Python 3.10, the match case statement offers a powerful mechanism for pattern matching in Python. It allows us to perform more expressive and readable conditional checks. Unlike traditional if-elif-else chains, which can become unwieldy with complex conditions, the match-case statement
7 min read
Regression in machine learning Regression in machine learning refers to a supervised learning technique where the goal is to predict a continuous numerical value based on one or more independent features. It finds relationships between variables so that predictions can be made. we have two types of variables present in regression
5 min read