Heim > Backend-Entwicklung > C++ > C#-Sortierung: Sortieren vs. Sortieren nach: Wann sollte ich welche verwenden?

C#-Sortierung: Sortieren vs. Sortieren nach: Wann sollte ich welche verwenden?

Barbara Streisand
Freigeben: 2024-12-30 02:05:09
Original
985 Leute haben es durchsucht

C# Sorting: Sort vs. OrderBy: When Should I Use Which?

C#-Sortierung: Sortieren vs. Sortieren nach

In C# haben wir mehrere Optionen zum Sortieren von Sammlungen, einschließlich Sortieren und Sortieren nach. Dieser Artikel befasst sich mit den Unterschieden zwischen diesen beiden Methoden und ihren jeweiligen Algorithmen.

Sortieren

Die Sortiermethode führt eine direkte Sortierung mithilfe des QuickSort-Algorithmus durch. Es handelt sich um einen instabilen Sortieralgorithmus, was bedeutet, dass die Reihenfolge gleicher Elemente nach dem Sortieren möglicherweise nicht erhalten bleibt.

OrderBy

Die OrderBy-Methode führt dagegen eine aus stabile Sorte. Dies bedeutet, dass gleiche Elemente nach dem Sortieren ihre relative Reihenfolge beibehalten. OrderBy verwendet intern einen Merge-Sortieralgorithmus.

Leistungsvergleich

Die Leistung von Sort und OrderBy variiert abhängig von Faktoren wie der Größe der Sammlung und der Art der Elemente , und die Sortierkriterien. Im Allgemeinen ist Sortieren bei kleinen Sammlungen oder beim Sortieren nach primitiven Datentypen schneller. Bei größeren Sammlungen oder komplexen Sortierkriterien kann OrderBy jedoch aufgrund seines stabilen Sortieralgorithmus effizienter sein.

Verwendungsszenarien

Sort eignet sich, wenn Sie Leistung benötigen eine direkte Sortierung und muss nicht die Reihenfolge gleicher Elemente beibehalten. OrderBy ist vorzuziehen, wenn die Beibehaltung der Reihenfolge gleicher Elemente wichtig ist oder wenn Sie nach dem Sortieren zusätzliche Vorgänge (z. B. Filterung oder Projektion) ausführen müssen.

Beispiel

Bedenken Sie Das folgende Beispiel:

List<Person> persons = new List<Person>();
persons.Add(new Person("P005", "Janson"));
persons.Add(new Person("P002", "Aravind"));
persons.Add(new Person("P007", "Kazhal"));
Nach dem Login kopieren

Mit Sortieren können wir die Liste sortieren Name:

persons.Sort((p1, p2) => string.Compare(p1.Name, p2.Name, true));
Nach dem Login kopieren

Mit OrderBy können wir eine stabile Sortierung mit einem benutzerdefinierten Vergleicher durchführen:

var query = persons.OrderBy(n => n.Name, new NameComparer());

class NameComparer : IComparer<string>
{
    public int Compare(string x, string y)
    {
        return string.Compare(x, y, true);
    }
}
Nach dem Login kopieren

In diesem Beispiel ist OrderBy besser geeignet, da es sicherstellt, dass die Reihenfolge gleich ist Namen bleiben erhalten.

Das obige ist der detaillierte Inhalt vonC#-Sortierung: Sortieren vs. Sortieren nach: Wann sollte ich welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage