Cómo ordenar una lista en C# | Conjunto de métodos List.Sort() -2

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:

  1. Ordenar (IComparer<T>)
  2. Ordenar (Int32, Int32, IComparer)
  3. Clasificar()
  4. Ordenar (Comparación <T>)

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);
        }
    }
}
Producción:

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 + " ");
        }
    }
}
Producción:

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");
        }
    }
}
Producción:

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);
        }
    }
}
Producción:

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);
        }
    }
}
Producción:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *