C# | Ordenar los elementos en el ArrayList

El método ArrayList.Sort se utiliza para ordenar los elementos en ArrayList. Hay un total de 3 métodos en la lista de sobrecarga de este método de la siguiente manera:

  1. Clasificar()
  2. Ordenar (IComparer)
  3. Ordenar (Int32, Int32, IComparer)

Clasificar()

Este método se utiliza para ordenar los elementos en todo el ArrayList. Utiliza el algoritmo QuickSort para ordenar los elementos de ArrayList. 

Nota: Este método es una operación O(n log n), donde n es Count y, en el peor de los casos, es una operación O(n^2).

Sintaxis:  

public virtual void Sort ();

Excepción: este método dará NotSupportedException si ArrayList es de solo lectura.

Ejemplo: 

C#

// C# program to illustrate Sort() Method
using System;
using System.Collections;
 
class GFG {
 
    // Main method
    public static void Main()
    {
 
        // create and initialize new ArrayList
        ArrayList mylist = new ArrayList();
        mylist.Add("Welcome");
        mylist.Add("to");
        mylist.Add("Geeks");
        mylist.Add("for");
        mylist.Add("Geeks");
        mylist.Add("2");
 
        // ArrayList before sorting
        Console.WriteLine("ArrayList before sort:");
        foreach(string i in mylist)
        {
            Console.WriteLine(i);
        }
        Console.WriteLine();
         
         
        Console.WriteLine("ArrayList after sort:");
 
        // sort the ArrayList
        // using Sort() method
        mylist.Sort();
 
        // ArrayList after sort
        foreach(string i in mylist)
        {
            Console.WriteLine(i);
        }
    }
}

Producción: 

ArrayList before sort:
Welcome
to
Geeks
for
Geeks
2

ArrayList after sort:
2
for
Geeks
Geeks
to
Welcome

Ordenar (IComparer)

Este método se usa para ordenar los elementos en todo el ArrayList usando el comparador especificado. Este método es una operación O(n log n), donde n es Count; en el peor de los casos, es una operación O(n^2).

Sintaxis:  

public virtual void Sort (IComparer comparer);

Aquí, la implementación de IComparer se usa al comparar los elementos. 

Excepciones:  

  • NotSupportedException: si ArrayList es de solo lectura.
  • InvalidOperationException: debido a un error al comparar dos elementos.
  • ArgumentException: si se pasa el valor nulo para el comparador y los elementos de la lista no implementan IComparable.

Ejemplo: 

C#

// C# program to illustrate Sort(IComparer) Method
using System;
using System.Collections;
 
class GFG {
     
    // Calls CaseInsensitiveComparer.Compare
    // with the parameters reversed.
    public class myClass : IComparer {
         
        int IComparer.Compare(Object a, Object b)
        {
            return ((new CaseInsensitiveComparer()).Compare(b, a));
        }
    }
     
    // Main method
    public static void Main()
    {
 
        // create and initialize new ArrayList, i.e. mylist
        ArrayList mylist = new ArrayList();
        mylist.Add("Welcome");
        mylist.Add("to");
        mylist.Add("geeks");
        mylist.Add("for");
        mylist.Add("geeks");
        mylist.Add("2");
 
        IComparer Comp1 = new myClass();
 
        // sort the value of ArrayList
        // using Sort(IComparer) method
        mylist.Sort(Comp1);
 
        foreach(Object ob in mylist)
        {
            Console.WriteLine(ob);
        }
    }
}

Producción: 

Welcome
to
geeks
geeks
for
2

Ordenar (Int32, Int32, IComparer)

Este método se usa para ordenar los elementos en un rango de elementos en ArrayList usando el comparador especificado. 
Nota: Este método es una operación O(n log n), donde n es contar y, en el peor de los casos, es una operación O(n^2).

Sintaxis:  

public virtual void Sort (int index, int count, IComparer comparer);

Parámetros:  

  • index: Es el índice inicial de base cero del rango a ordenar y el tipo de este parámetro es System.Int32.
  • count: cuenta la longitud del rango a ordenar y el tipo de este parámetro es System.Int32 .
  • comparer: Es la implementación de IComparer que se utiliza durante la comparación de los elementos.

Excepciones: 

  • NotSupportedException: si ArrayList es de solo lectura.
  • InvalidOperationException: debido a un error al comparar dos elementos.
  • ArgumentException: si el índice y el recuento no especifican un rango válido en ArrayList.
  • ArgumentOutOfRangeException: si el índice es menor que cero.

Ejemplo: 

C#

// C# program to illustrate the use of
// Sort(Int32, Int32, IComparer) Method
using System;
using System.Collections;
 
class GFG {
 
    // Main method
    public static void Main()
    {
         
        // create and initialize new ArrayList
        ArrayList mylist = new ArrayList();
        mylist.Add("Welcome");
        mylist.Add("to");
        mylist.Add("geeks");
        mylist.Add("for");
        mylist.Add("GFG");
        mylist.Add("2");
 
        // sort the value of ArrayList from 0 to 4
        // using Sort( Int32, Int32, IComparer) method
        // here the value of IComparer is null
        mylist.Sort(0, 4, null);
 
        // Display the sorted string
        foreach(string ob in mylist)
        {
            Console.WriteLine(ob);
        }
    }
}

Producción: 

for
geeks
to
Welcome
GFG
2

Referencia:  

Publicación traducida automáticamente

Artículo escrito por ankita_saini 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 *