Kaip rūšiuoti sąrašą C# | List.Sort() Metodų rinkinys -1

Sąrašas.Rūšiavimo() metodas naudojamas elementams arba elementų daliai sąraše rūšiuoti naudojant nurodytą arba numatytąjį IComparer diegimą arba pateiktą palyginimo įgaliotinį sąrašo elementams palyginti. Šio metodo perkrovos sąraše iš viso yra 4 metodai:

  1. Rūšiuoti (ICpaparer)
  2. Rūšiuoti (Int32, Int32, IComparer)
  3. Rūšiuoti ()
  4. Rūšiuoti (palyginimas)

Čia aptarsime pirmuosius du būdus.

Rūšiavimo (IClyginimo) metodas

Šis metodas naudojamas elementams rūšiuoti visame sąraše naudojant nurodytą lygintuvą.

Sintaksė:

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

Čia lygintuvas yra IComparer diegimas, naudojamas lyginant elementus, arba nulinis, kad būtų naudojamas numatytasis lygintuvas Numatytasis.

Išimtys:

    InvalidOperationException: jei lygintuvas yra nulinis, o numatytasis lygintuvas Default negali rasti IComparable bendrosios sąsajos arba IComparable sąsajos, skirtos T tipui, diegimo. ArgumentException: jei lygintuvo įgyvendinimas rūšiuojant sukėlė klaidą. Pavyzdžiui, lygintuvas gali nepateikti 0, kai lygina elementą su savimi.

1 pavyzdys:




// C# program to demonstrate the concept of> // List.Sort(IComparer ) method> using> System;> using> System.Collections.Generic;> > class> GFG : IComparer <> int> >>> List <> int> >>> );> > > 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);> > > }> > }> }>

Išvestis:

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

2 pavyzdys:




// C# program to demonstrate the concept of> // List.Sort(IComparer ) method> using> System;> using> System.Collections.Generic;> > class> GFG : IComparer <> string> >>> > return> x.CompareTo(y);> > > }> }> > public> class> geek> {> > > // Main Method> > public> static> void> Main()> > {> > List <> string> >list1 =>> > // 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> >sąrašas)>>

Išvestis:

 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 
Sąrašas.Rūšiavimo(Int32, Int32, IComparer) metodas

Šis metodas naudojamas elementams rūšiuoti sąrašo elementų diapazone naudojant nurodytą lygintuvą.

Sintaksė:

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

Parametrai:

indeksas : tai nuliu pagrįstas diapazono, kuriame bus rūšiuojama, pradinis indeksas.

tik : Tai diapazono ilgis.

palyginti : Lyginant elementus naudokite IComparer įgyvendinimas arba nulis, jei norite naudoti numatytąjį palyginiklį Numatytasis.

Išimtys:

    ArgumentOutOfRangeException : Jei indeksas arba tik yra mažesnis nei 0. ArgumentasIšimtis : Jei indeksas ir skaičius nenurodo tinkamo diapazono Sąrašas . InvalidOperationException : Jei palyginti yra niekinis.

Pavyzdys:




// C# program to demonstrate the use of> // List.Sort(Int32, Int32, IComparer)> // Method> using> System;> using> System.Collections.Generic;> > class> GFG : IComparer <> string> >>> > return> x.CompareTo(y);> > > }> }> > public> class> geek> {> > public> static> void> Main()> > {> > List <> string> >list1 =>> > // 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> >sąrašas)>>

Išvestis:

 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 

Nuoroda: