logo

Comment trier une liste en C# | Ensemble de méthodes List.Sort() -1

Méthode List.Sort() est utilisé pour trier les éléments ou une partie des éléments de la liste en utilisant soit l'implémentation IComparer spécifiée ou par défaut, soit un délégué de comparaison fourni pour comparer les éléments de la liste. Il y a au total 4 méthodes dans la liste de surcharge de cette méthode, comme suit :



  1. Trier (IComparer)
  2. Trier (Int32, Int32, IComparer)
  3. Trier()
  4. Trier (Comparaison)

Ici, nous discuterons des deux premières méthodes.

Méthode Sort(IComparer)

Cette méthode est utilisée pour trier les éléments de la liste entière à l'aide du comparateur spécifié.

Syntaxe:



public void Sort (System.Collections.Generic.IComparer comparer);>

Ici, le comparateur est l'implémentation d'IComparer à utiliser lors de la comparaison d'éléments, ou null pour utiliser le comparateur par défaut Default.

Des exceptions:

    InvalidOperationException : si le comparateur est nul et que le comparateur par défaut ne trouve pas l'implémentation de l'interface générique IComparable ou l'interface IComparable pour le type T. ArgumentException : si l'implémentation du comparateur a provoqué une erreur lors du tri. Par exemple, le comparateur peut ne pas renvoyer 0 lors de la comparaison d'un élément avec lui-même.

Exemple 1:




date java actuelle



// C# program to demonstrate the concept of> // List.Sort(IComparer ) method> using> System;> using> System.Collections.Generic;> > class> GFG : IComparer<>int>>> {> >public> int> Compare(>int> x,>int> y)> >{> >if> (x == 0 || y == 0)> >{> >return> 0;> >}> > >// CompareTo() method> >return> x.CompareTo(y);> > >}> }> > public> class> geek> {> > >// Main Method> >public> static> void> Main()> >{> > >// List initialize> >List<>int>>liste1 =>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);> > >}> > >// 'gg' is the object oif class GFG> >GFG gg =>new> GFG();> > >Console.WriteLine(>' Sort with a comparer:'>);> > >// use of List.Sort(IComparer)> >// method. The comparer is 'gg'> >list1.Sort(gg);> > >foreach>(>int> g>in> list1 )> >{> > >// Display sorted list> >Console.WriteLine(g);> > >}> >}> }>

>

>

Sortir:

 Original List 1 5 6 2 4 3 Sort with a comparer: 1 2 3 4 5 6>

Exemple 2 :




// C# program to demonstrate the concept of> // List.Sort(IComparer ) method> using> System;> using> System.Collections.Generic;> > class> GFG : IComparer<>string>>> {> >public> int> Compare(>string> x,>string> y)> >{> > >if> (x ==>null> || y ==>null>)> >{> >return> 0;> >}> > >// 'CompareTo()' method> >return> x.CompareTo(y);> > >}> }> > public> class> geek> {> > >// Main Method> >public> static> void> Main()> >{> >List<>string>>liste1 =>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(>'J'>);> > >Console.WriteLine(>'Original List'>);> > >// Display Original List> >Display(list1);> > >// 'gg' is the object> >GFG gg =>new> GFG();> > >Console.WriteLine(>' Sort with a comparer:'>);> > >// sort the list with a> >// specified comparer 'gg'> >list1.Sort(gg);> > >// Display sorted List> >Display(list1);> > >Console.WriteLine(>' BinarySearch and Insert D'>);> > >// Binary Search for 'D'> >// using List.BinarySearch(T) method> >int> index = list1.BinarySearch(>'D'>);> > >if> (index <0)> >{> > >// range++;> >list1.Insert(~index,>'D'>);> > >}> > >// Display the List after> >// inserting 'D'> >Display(list1);> > >}> > >// Display function> >public> static> void> Display(List<>string>>liste)> >{> >foreach>(>string> g>in> list )> >{> >Console.WriteLine(g);> >}> >}> }>

>

>

Sortir:

 Original List A I G B E H F C J Sort with a comparer: A B C E F G H I J BinarySearch and Insert D A B C D E F G H I J>
Méthode List.Sort(Int32, Int32, IComparer)

Cette méthode est utilisée pour trier les éléments d'une plage d'éléments dans List à l'aide du comparateur spécifié.

Syntaxe:

public void Sort(int index, int len, IComparer comparer)>

Paramètres:

indice : Il s'agit de l'index de départ de base zéro de la plage dans laquelle le tri aura lieu.

seulement : C'est la longueur de la portée.

comparer : Lorsque vous comparez des éléments, utilisez le IComparateur implémentation ou null pour utiliser le comparateur par défaut Default.

Des exceptions:

    ArgumentOutOfRangeException : Si indice ou seulement est inférieur à 0. ArgumentException : si indice et count ne spécifient pas de plage valide dans le Liste . InvalidOperationException : si comparer est nul.

Exemple:




// C# program to demonstrate the use of> // List.Sort(Int32, Int32, IComparer)> // Method> using> System;> using> System.Collections.Generic;> > class> GFG : IComparer<>string>>> {> >public> int> Compare(>string> x,>string> y)> >{> >if> (x ==>null> || y ==>null>)> >{> >return> 0;> >}> > >// 'CompareTo()' method> >return> x.CompareTo(y);> > >}> }> > public> class> geek> {> >public> static> void> Main()> >{> >List<>string>>liste1 =>new> List<>string>>();> > >// list elements> >list1.Add(>'C++'>);> >list1.Add(>'Java'>);> >list1.Add(>'C'>);> >list1.Add(>'Python'>);> >list1.Add(>'HTML'>);> >list1.Add(>'CSS'>);> >list1.Add(>'Scala'>);> >list1.Add(>'Ruby'>);> >list1.Add(>'Perl'>);> > >int> range = 4;> >Console.WriteLine(>'Original List'>);> > >// Display Original List> >Display(list1);> > >// 'gg' is the object> >GFG gg =>new> GFG();> > >Console.WriteLine(>' Sort a range with comparer:'>);> > >// sort the list within a> >// range of index 1 to 4> >// where range = 4> >list1.Sort(1, range, gg);> > >// Display sorted List> >Display(list1);> > >Console.WriteLine(>' BinarySearch and Insert Dart'>);> > >// Binary Search and storing> >// index value to 'index'> >int> index = list1.BinarySearch(0, range,> >'Dart'>, gg);> > >if> (index <0)> >{> >list1.Insert(~index,>'Dart'>);> >range++;> >}> > >// Display the List> >// after inserting 'Dart'> >Display(list1);> > >}> > >// Display function> >public> static> void> Display(List<>string>>liste)> >{> >foreach>(>string> g>in> list)> >{> >Console.WriteLine(g);> >}> >}> }>

>

>

Sortir:

 Original List C++ Java C Python HTML CSS Scala Ruby Perl Sort a range with comparer: C++ C HTML Java Python CSS Scala Ruby Perl BinarySearch and Insert Dart C++ C Dart HTML Java Python CSS Scala Ruby Perl>

Référence: