logo

Як сортувати список у C# | Набір методів List.Sort() -1

Метод List.Sort(). використовується для сортування елементів або частини елементів у Списку за допомогою визначеної або типової реалізації IComparer або наданого делегату Comparison для порівняння елементів списку. Всього в списку перевантаження цього методу є 4 методи:



  1. Сортувати (ICComparer)
  2. Сортувати (Int32, Int32, IComparer)
  3. Сортувати()
  4. Сортування (порівняння)

Тут ми обговоримо перші два методи.

Метод сортування (ICComparer).

Цей метод використовується для сортування елементів у всьому списку за допомогою вказаного компаратора.

Синтаксис:



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

Тут компаратор — це реалізація IComparer, яка використовується під час порівняння елементів, або null, щоб використовувати стандартний компаратор за замовчуванням.

Винятки:

    InvalidOperationException: якщо компаратор дорівнює нулю, а компаратор за замовчуванням не може знайти реалізацію загального інтерфейсу IComparable або інтерфейсу IComparable для типу T. ArgumentException: якщо реалізація компаратора спричинила помилку під час сортування. Наприклад, компаратор може не повернути 0 під час порівняння елемента з самим собою.

приклад 1:




scan.nextstring java



// 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>>список1 =>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);> > >}> >}> }>

>

>

Вихід:

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

приклад 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>>список1 =>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>>список)> >{> >foreach>(>string> g>in> list )> >{> >Console.WriteLine(g);> >}> >}> }>

>

>

Вихід:

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

Цей метод використовується для сортування елементів у діапазоні елементів у списку за допомогою вказаного компаратора.

Синтаксис:

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

Параметри:

індекс : це початковий індекс від нуля діапазону, у якому відбуватиметься сортування.

тільки : це довжина діапазону.

порівняти : при порівнянні елементів використовуйте IComparer реалізація або значення null для використання стандартного порівняння за замовчуванням.

Винятки:

    ArgumentOutOfRangeException : Якщо індекс або тільки менше 0. ArgumentException : якщо індекс і count не вказують дійсний діапазон у Список . InvalidOperationException : якщо порівняти є нульовим.

приклад:




// 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>>список1 =>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>>список)> >{> >foreach>(>string> g>in> list)> >{> >Console.WriteLine(g);> >}> >}> }>

>

>

Вихід:

 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>

Посилання: