How to sort a list in C# | List.Sort() Method Set -2
List<T>.Sort() Method is used to sort the elements or a portion of the elements in the List<T> using either the specified or default IComparer<T> implementation or a provided Comparison<T> delegate to compare list elements. There are total 4 methods in the overload list of this method as follows:
Here, the first two methods are discussed in Set – 1. So, We will discuss the last two methods.
Sort() Method
This method is used to sort the elements in the entire List<T> using the default comparer.
Syntax: public void Sort ();
Exception: This method will give InvalidOperationException if the default Comparer cannot find an implementation of the IComparable<T> generic interface or the IComparable interface for type T.
Example 1:
// C# program to demonstrate the // use of List<T>.Sort() method using System; using System.Collections.Generic; class GFG { // Main Method public static void Main() { // List initialize List< int > list1 = new List< int > { // list elements 1, 5, 6, 2, 4, 3 }; Console.WriteLine( "Original List" ); foreach ( int g in list1) { // Display Original List Console.WriteLine(g); } Console.WriteLine( "\nSorted List" ); // use of List<T>.Sort() method list1.Sort(); foreach ( int g in list1) { // Display sorted list Console.WriteLine(g); } } } |
Original List 1 5 6 2 4 3 Sorted List 1 2 3 4 5 6
Example 2:
// C# program to demonstrate the // use of List<T>.Sort() method using System; using System.Collections.Generic; class GFG { // Main Method public static void Main() { List< string > list1 = new List< string >(); // list elements list1.Add( "A" ); list1.Add( "I" ); list1.Add( "G" ); list1.Add( "B" ); list1.Add( "E" ); list1.Add( "H" ); list1.Add( "F" ); list1.Add( "C" ); list1.Add( "D" ); Console.WriteLine( "Original List" ); // Display Original List Display(list1); Console.WriteLine( "\nSorted List" ); // use of List.Sort() method list1.Sort(); // Display sorted List Display(list1); } // Display function public static void Display(List< string > list) { foreach ( string g in list) { Console.Write(g + " " ); } } } |
Original List A I G B E H F C D Sorted List A B C D E F G H I
Example 3:
// C# program to demonstrate the // use of List<T>.Sort() method using System; using System.Collections.Generic; public class GFG { // Main Method public static void Main() { // array elements String[] list = { "C++" , "Java" , "C" , "Python" , "HTML" , "CSS" , "Scala" , "Ruby" , "Perl" }; var list1 = new List<String>(); // "AddRange" method to add the // string array elements into the List list1.AddRange(list); Console.WriteLine( "List in unsorted order: " ); Display(list1); Console.WriteLine(Environment.NewLine); // using List.Sort() method list1.Sort(); Console.WriteLine( "List in sorted order: " ); Display(list1); } // Display method static void Display(List< string > list) { foreach ( string g in list) { Console.Write(g + "\t" ); } } } |
List in unsorted order: C++ Java C Python HTML CSS Scala Ruby Perl List in sorted order: C C++ CSS HTML Java Perl Python Ruby Scala
Sort(IComparer<T>) Method
This method is used to sort the elements in the entire List<T> using the specified comparer.
Syntax: public void Sort (Comparison<T> comparison);
Parameter:
comparison: It is the IComparer<T> implementation to use when comparing elements, or null to use the default comparer Default.
Exceptions:
- ArgumentNullException: If the comparer is null, and the default comparer Default cannot find implementation of the IComparable<T> generic interface or the IComparable interface for type T.
- ArgumentException: If the implementation of comparer caused an error during the sort. For example, comparer might not return 0 when comparing an item with itself.
Below programs illustrate the use of the above-discussed method:
Example 1:
// C# program to demonstrate the use of // List<T>.Sort(comparison <T>) method using System; using System.Collections.Generic; class GFG { private static int Geek( string x, string y) { if (x == null ) { if (y == null ) { // If x and y is null // then they are equal return 0; } else { // If x is null but y is not // null then y is greater. return -1; } } else { if (y == null ) { return 1; } else { // If the strings are of equal length, // sort them with string comparison. return x.CompareTo(y); } } } // Main Method public static void Main() { List< string > list1 = new List< string >(); // list elements list1.Add( "AB" ); list1.Add( "CD" ); list1.Add( "GH" ); list1.Add( "EF" ); list1.Add( "IJ" ); list1.Add( "KL" ); Console.WriteLine( "Original List :" ); // displaying original list Display(list1); Console.WriteLine( "\nSort with generic Comparison object :" ); // Sort(Comparison<t>) method //"Geek" is Comparison object list1.Sort(Geek); // displaying sorted list Display(list1); } // display function private static void Display(List< string > list) { foreach ( string g in list) { Console.WriteLine(g); } } } |
Original List : AB CD GH EF IJ KL Sort with generic Comparison object : AB CD EF GH IJ KL
Example 2:
// C# program to demonstrate the use of // List<T>.Sort(comparison <T>) method using System; using System.Collections.Generic; class GFG { private static int Geek( int x, int y) { if (x == 0) { if (y == 0) { // If x and y is null // then they are equal return 0; } else { // If x is null but y is not // null then y is greater. return -1; } } else { if (y == 0) { return 1; } else { // If the strings are of equal length, // sort them with string comparison. return x.CompareTo(y); } } } public static void Main() { List< int > list1 = new List< int >(); // list elements list1.Add(2); list1.Add(5); list1.Add(6); list1.Add(4); list1.Add(1); list1.Add(3); Console.WriteLine( "Original List :" ); // displaying original list Display(list1); Console.WriteLine( "\nSort with generic " + "Comparison object :" ); // Sort(Comparison<t>) method //"Geek" is Comparison object list1.Sort(Geek); // displaying sorted list Display(list1); } // display function private static void Display(List< int > list) { foreach ( int g in list) { Console.WriteLine(g); } } } |
Original List : 2 5 6 4 1 3 Sort with generic Comparison object : 1 2 3 4 5 6
Reference:
Please Login to comment...