Assembly : mscorlib (dans mscorlib.dll)
SyntaxePublic Sub Sort
Dim instance As List(Of T) instance.Sort
public void Sort ()
public: void Sort ()
public void Sort ()
public function Sort ()
Exceptions| Type d'exception | Condition |
|---|---|
| Le comparateur par défaut Comparer.Default ne peut pas trouver une implémentation de l'interface générique IComparable ou de l'interface IComparable pour le type T. |
NotesCette méthode utilise le comparateur par défaut Comparer.Default pour le type T afin de déterminer l'ordre des éléments de liste. La propriété Comparer.Default vérifie si le type T implémente l'interface générique IComparable et utilise cette implémentation, le cas échéant. Sinon, Comparer.Default vérifie si le type T implémente l'interface IComparable. Si le type T n'implémente aucune des interfaces, Comparer.Default lève InvalidOperationException.
Cette méthode utilise System.Array.Sort, qui se sert de l'algorithme QuickSort. Cette implémentation effectue un tri instable ; autrement dit, lorsque deux éléments sont égaux, leur ordre risque de ne pas être respecté. En revanche, une opération de tri stable ne modifie pas l'ordre d'éléments égaux.
En moyenne, cette méthode est une opération O(n log n) où n est Count ; dans le pire des cas, c'est une opération O(n ^ 2).
ExempleL'exemple de code suivant illustre les surcharges de méthodes Sort et BinarySearch(T). Un List de chaînes est créé et rempli avec quatre chaînes, dans aucun ordre particulier. La liste est affichée, triée et affichée une nouvelle fois.
La surcharge de méthode BinarySearch(T) est ensuite utilisée pour rechercher deux chaînes qui ne sont pas dans la liste et la méthode Insert est utilisée pour les insérer. La valeur de retour de la méthode BinarySearch est négative dans chaque cas, parce que les chaînes ne figurent pas dans la liste. La prise du complément de bits (l'opérateur ~ de C# et de Visual C++, Xor -1 en Visual Basic) de ce nombre négatif génère l'index du premier élément dans la liste qui est supérieur à la chaîne de recherche, et l'insertion à cet emplacement conserve l'ordre de tri. La deuxième chaîne de recherche est plus grande que n'importe quel élément dans la liste, donc la position d'insertion se situe à la fin de la liste.
Imports System Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim dinosaurs As New List(Of String) dinosaurs.Add("Pachycephalosaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Deinonychus") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & "Sort") dinosaurs.Sort Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & _ "BinarySearch and Insert ""Coelophysis"":") Dim index As Integer = dinosaurs.BinarySearch("Coelophysis") If index < 0 Then index = index Xor -1 dinosaurs.Insert(index, "Coelophysis") End If Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & _ "BinarySearch and Insert ""Tyrannosaurus"":") index = dinosaurs.BinarySearch("Tyrannosaurus") If index < 0 Then index = index Xor -1 dinosaurs.Insert(index, "Tyrannosaurus") End If Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next End Sub End Class ' This code example produces the following output: ' 'Pachycephalosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus ' 'Sort ' 'Amargasaurus 'Deinonychus 'Mamenchisaurus 'Pachycephalosaurus ' 'BinarySearch and Insert "Coelophysis": ' 'Amargasaurus 'Coelophysis 'Deinonychus 'Mamenchisaurus 'Pachycephalosaurus ' 'BinarySearch and Insert "Tyrannosaurus": ' 'Amargasaurus 'Coelophysis 'Deinonychus 'Mamenchisaurus 'Pachycephalosaurus 'Tyrannosaurus
using System; using System.Collections.Generic; public class Example { public static void Main() { List<string> dinosaurs = new List<string>(); dinosaurs.Add("Pachycephalosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nSort"); dinosaurs.Sort(); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nBinarySearch and Insert \"Coelophysis\":"); int index = dinosaurs.BinarySearch("Coelophysis"); if (index < 0) { dinosaurs.Insert(~index, "Coelophysis"); } Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nBinarySearch and Insert \"Tyrannosaurus\":"); index = dinosaurs.BinarySearch("Tyrannosaurus"); if (index < 0) { dinosaurs.Insert(~index, "Tyrannosaurus"); } Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } } } /* This code example produces the following output: Pachycephalosaurus Amargasaurus Mamenchisaurus Deinonychus Sort Amargasaurus Deinonychus Mamenchisaurus Pachycephalosaurus BinarySearch and Insert "Coelophysis": Amargasaurus Coelophysis Deinonychus Mamenchisaurus Pachycephalosaurus BinarySearch and Insert "Tyrannosaurus": Amargasaurus Coelophysis Deinonychus Mamenchisaurus Pachycephalosaurus Tyrannosaurus */
using namespace System; using namespace System::Collections::Generic; void main() { List<String^>^ dinosaurs = gcnew List<String^>(); dinosaurs->Add("Pachycephalosaurus"); dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Mamenchisaurus"); dinosaurs->Add("Deinonychus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\nSort"); dinosaurs->Sort(); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\nBinarySearch and Insert \"Coelophysis\":"); int index = dinosaurs->BinarySearch("Coelophysis"); if (index < 0) { dinosaurs->Insert(~index, "Coelophysis"); } Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\nBinarySearch and Insert \"Tyrannosaurus\":"); index = dinosaurs->BinarySearch("Tyrannosaurus"); if (index < 0) { dinosaurs->Insert(~index, "Tyrannosaurus"); } Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } } /* This code example produces the following output: Pachycephalosaurus Amargasaurus Mamenchisaurus Deinonychus Sort Amargasaurus Deinonychus Mamenchisaurus Pachycephalosaurus BinarySearch and Insert "Coelophysis": Amargasaurus Coelophysis Deinonychus Mamenchisaurus Pachycephalosaurus BinarySearch and Insert "Tyrannosaurus": Amargasaurus Coelophysis Deinonychus Mamenchisaurus Pachycephalosaurus Tyrannosaurus */
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ