logo

Kā kārtot sarakstu C# | List.Sort() metožu kopa -1

List.Sort() metode tiek izmantots, lai kārtotu elementus vai elementu daļu sarakstā, izmantojot norādīto vai noklusējuma IComparer ieviešanu vai nodrošināto salīdzināšanas delegātu saraksta elementu salīdzināšanai. Šīs metodes pārslodzes sarakstā kopā ir 4 metodes:



  1. Kārtot (ICalīdzinātājs)
  2. Kārtot (Int32, Int32, IComparer)
  3. Kārtot()
  4. Kārtot (salīdzinājums)

Šeit mēs apspriedīsim pirmās divas metodes.

Kārtošanas (ICalīdzinātāja) metode

Šo metodi izmanto, lai kārtotu elementus visā sarakstā, izmantojot norādīto salīdzinātāju.

Sintakse:



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

Šeit salīdzinātājs ir IComparer implementācija, kas jāizmanto, salīdzinot elementus, vai nulle, lai izmantotu noklusējuma salīdzinātāju Noklusējums.

Izņēmumi:

    InvalidOperationException: ja salīdzinātājs ir nulle un noklusējuma salīdzinātājs Default nevar atrast IComparable vispārīgās saskarnes vai IComparable interfeisa ieviešanu tipam T. ArgumentException: ja salīdzinātāja ieviešana izraisīja kļūdu kārtošanas laikā. Piemēram, salīdzinātājs var neatgriezt 0, salīdzinot vienumu ar sevi.

1. piemērs:




java šķēle



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

>

>

Izvade:

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

2. piemērs:




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

>

>

Izvade:

 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) metode

Šo metodi izmanto, lai kārtotu elementus saraksta elementu diapazonā, izmantojot norādīto salīdzinātāju.

Sintakse:

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

Parametri:

rādītājs : tas ir uz nulli balstīts sākuma indekss diapazonam, kurā notiks kārtošana.

tikai : tas ir diapazona garums.

salīdzināt : Salīdzinot elementus, izmantojiet ISalīdzinātājs implementācija vai null, lai izmantotu noklusējuma salīdzinātāju Noklusējums.

Izņēmumi:

    ArgumentOutOfRangeException: Ja rādītājs vai tikai ir mazāks par 0. ArgumentsIzņēmums: Ja rādītājs un skaits nenorāda derīgu diapazonu Saraksts . InvalidOperationException: Ja salīdzināt ir nulle.

Piemērs:




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

>

>

Izvade:

 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>

Atsauce: