logo

Hur man sorterar en lista i C# | List.Sort() Metoduppsättning -1

List.Sort() Metod används för att sortera elementen eller en del av elementen i listan med antingen den specificerade eller standardimplementeringen av IComparer eller en tillhandahållen jämförelsedelegat för att jämföra listelement. Det finns totalt 4 metoder i överbelastningslistan för denna metod enligt följande:



  1. Sortera (ICcomparer)
  2. Sortera (Int32, Int32, IComparer)
  3. Sortera()
  4. Sortera (jämförelse)

Här kommer vi att diskutera de två första metoderna.

Sortera (IComparer) metod

Denna metod används för att sortera elementen i hela listan med den angivna komparatorn.

Syntax:



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

Här är komparatorn IComparer-implementationen att använda när man jämför element, eller null för att använda standardjämföraren Default.

Undantag:

    InvalidOperationException: Om komparatorn är null och standardjämföraren Default kan inte hitta implementeringen av det generiska gränssnittet IComparable eller gränssnittet IComparable för typ T. ArgumentException: Om implementeringen av komparatorn orsakade ett fel under sorteringen. Till exempel kanske comparer inte returnerar 0 när man jämför en vara med sig själv.

Exempel 1:




10 1 miljoner



// 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>>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);> > >}> > >// '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);> > >}> >}> }>

>

>

Produktion:

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

Exempel 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>>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(>'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>>lista)> >{> >foreach>(>string> g>in> list )> >{> >Console.WriteLine(g);> >}> >}> }>

>

>

Produktion:

 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>
List.Sort(Int32, Int32, IComparer) Metod

Den här metoden används för att sortera elementen i ett antal element i List med den angivna komparatorn.

Syntax:

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

Parametrar:

index : Det är det nollbaserade startindexet för intervallet där sorteringen kommer att ske.

endast : Det är längden på intervallet.

jämföra : När du jämför element använd då IComparer implementering eller null för att använda standardjämföraren Default.

Undantag:

    ArgumentOutOfRangeException : Om index eller endast är mindre än 0. ArgumentUndantag: Om index och count anger inte ett giltigt intervall i Lista . InvalidOperationException : If jämföra är inget.

Exempel:




// 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>>list1 =>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>>lista)> >{> >foreach>(>string> g>in> list)> >{> >Console.WriteLine(g);> >}> >}> }>

>

>

Produktion:

 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>

Referens: