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:
csharp
// C# program to demonstrate the
// Array.Sort(Array, IComparer) method
using System;
using System.Collections;
class compare : IComparer {
// Call CaseInsensitiveComparer.Compare
public int Compare(Object x, Object y)
{
return (new CaseInsensitiveComparer()).Compare(x, y);
}
}
class GFG {
// Main Method
public static void Main()
{
// Initializing array.
String[] arr = {"A", "D", "B",
"E", "C", "F", "G"};
// Instantiate the IComparer object
IComparer cmp = new compare();
// Display the original values of the array
Console.WriteLine("The Original array:");
display(arr);
// Sort the entire array by using
// the IComparer object
// "cmp" is the IComparer object
Array.Sort(arr, 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
Example 2:
csharp
// C# program to demonstrate the
// Array.Sort(Array, IComparer) method
using System;
using System.Collections;
class compare : IComparer {
// Call CaseInsensitiveComparer.Compare
public int Compare(Object x, Object y)
{
return (new CaseInsensitiveComparer()).Compare(x, y);
}
}
class GFG {
// Main Method
public static void Main()
{
// Initializing array.
int[] arr = {10, 1, 9, 8, 3,
4, 6, 5, 2, 7};
// Instantiate the IComparer object
IComparer cmp = new compare();
// Display the original values of the array
Console.WriteLine("The Original array:");
display(arr);
// Sort the entire array by
// using the IComparer object
// "cmp" is the IComparer object
Array.Sort(arr, cmp);
Console.WriteLine("\n\nAfter sorting the "+
"array using the IComparer:");
display(arr);
}
// display function
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:
csharp
// C# program to demonstrate the
// Array.Sort(Array, Array,
// IComparer) method
using System;
using System.Collections;
class comparer : IComparer {
// Call CaseInsensitiveComparer.Compare
public int Compare(Object x, Object y)
{
return (new CaseInsensitiveComparer()).Compare(x, y);
}
}
class GFG {
// Main Method
public static void Main()
{
// initialize two arrays
String[] arr1 = {"H", "J", "K",
"L", "I", "N", "M"};
String[] arr2 = {"A", "E", "D",
"C", "F", "B", "G"};
// Instantiate the IComparer object
IComparer g = new comparer();
// Display original values of the array.
Console.WriteLine("The original order of "+
"elements in the array:");
Display(arr1, arr2);
// Sort the array using IComparer
// object. "g" is IComparer 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
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:
csharp
// C# program to demonstrate the
// Array.Sort(Array, Array) method
using System;
class GFG {
// Main Method
public static void Main()
{
// initialize two array.
int[] arr1 = {7, 5, 2, 3, 1, 6, 4};
string[] arr2 = {"A", "E", "D",
"C", "F", "B", "G"};
// Display original values of the array.
Console.WriteLine("The original array:");
Display(arr1, arr2);
// Sort the array using two array
// "arr1" is keys array
// "arr2" item array
Array.Sort(arr1, arr2);
Console.WriteLine("\nAfter Sorting :");
Display(arr1, arr2);
}
// Display function
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:
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