Cómo ordenar una array en C# | Conjunto de métodos Array.Sort() – 3

El método Array.Sort se utiliza para ordenar elementos en una array unidimensional. Hay 17 métodos en la lista de sobrecarga de este método. Aquí discutiremos los siguientes métodos:

  • Ordenar (Array, IComparer) Método
  • Método Ordenar (Array, Array, IComparer)
  • Ordenar (Array, Array) Método

Ordenar (Array, IComparer) Método

Este método ordena los elementos en una array unidimensional utilizando un IComparer especificado .

Sintaxis: public static void Sort (Array arr, IComparer comparer);

Parámetros:
arr: Es el arreglo unidimensional a ordenar.
comparer: Es la implementación a utilizar al comparar elementos.

Excepciones:

  • ArgumentNullException: si la array arr es nula.
  • RankException: si la array arr es multidimensional.
  • InvalidOperationException: si el comparador es nulo.
  • ArgumentException: si la implementación del comparador provocó un error durante la ordenación.

Ejemplo 1:

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

The Original array:
A
D
B
E
C
F
G

After sorting the array using the IComparer:
A
B
C
D
E
F
G

Ejemplo 2:

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

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

Método Ordenar (Array, Array, IComparer)

Este método ordena un par de objetos de array unidimensionales en función de las claves de la primera array mediante el IComparer especificado .

Sintaxis: Public static void Sort (claves de array, elementos de array, comparador IComparer);

Parámetros:
claves: Es el arreglo unidimensional que contiene las claves a ordenar.
items: Es la array unidimensional que contiene los elementos que corresponden a cada una de las claves en la array de claves .
comparer: es la implementación de IComparer para usar al comparar elementos.

Excepciones:

  • ArgumentNullException: si las claves son nulas.
  • RankException: si la array de claves es multidimensional o la array de elementos es multidimensional.
  • ArgumentException: si los elementos no son nulos y la longitud de las claves es mayor que la longitud de los elementos o la implementación del comparador provocó un error durante la ordenación.
  • InvalidOperationException: si el comparador es nulo.

Ejemplo:

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

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

Ordenar (Array, Array) Método

Este método ordena un par de objetos de array unidimensionales en función de las claves del primer Array mediante la implementación IComparable de cada clave. Aquí, en los objetos hay dos arrays en las que una contiene las claves y la otra contiene los elementos correspondientes.

Sintaxis: Public static void Sort (claves de array, elementos de array);

Parámetros:
claves: Es el arreglo unidimensional que contiene las claves a ordenar.
items: Es la array unidimensional que contiene los elementos que corresponden a cada una de las claves en la array de claves .

Excepciones:

  • ArgumentNullException: si las claves son nulas.
  • RankException: si la array de claves es multidimensional o la array de elementos es multidimensional.
  • ArgumentException: si los elementos no son nulos y la longitud de las claves es mayor que la longitud de los elementos .
  • InvalidOperationException: si uno o más elementos en la array de claves no implementan la interfaz IComparable .

Ejemplo:

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

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

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 *