El método List<T>.Sort() se usa para ordenar los elementos o una parte de los elementos en List<T> usando la implementación de IComparer<T> predeterminada o especificada o un delegado de Comparison<T> provisto para comparar elementos de lista . Hay un total de 4 métodos en la lista de sobrecarga de este método de la siguiente manera:
Aquí, los primeros dos métodos se discuten en el Conjunto – 1 . Entonces, discutiremos los dos últimos métodos.
Ordenar() método
Este método se utiliza para ordenar los elementos de List<T> completo mediante el comparador predeterminado.
Sintaxis: public void Sort();
Excepción: este método dará InvalidOperationException si el comparador predeterminado no puede encontrar una implementación de la interfaz genérica IComparable<T> o la interfaz IComparable para el tipo T.
Ejemplo 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
Ejemplo 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
Ejemplo 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
Ordenar (IComparer<T>) Método
Este método se utiliza para ordenar los elementos de List<T> completo mediante el comparador especificado.
Sintaxis: public void Sort (comparación Comparación<T>);
Parámetro:
comparación: es la implementación de IComparer<T> para usar al comparar elementos, o nulo para usar el comparador predeterminado Default.
Excepciones:
- ArgumentNullException: si el comparador es nulo y el comparador predeterminado Default no puede encontrar la implementación de la interfaz genérica IComparable<T> o la interfaz IComparable para el tipo T.
- ArgumentException: si la implementación del comparador provocó un error durante la ordenación. Por ejemplo, el comparador podría no devolver 0 al comparar un elemento consigo mismo.
Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 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
Ejemplo 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
Referencia:
Publicación traducida automáticamente
Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA