Wie sortiere ich eine Liste nach einer Eigenschaft im Objekt in C#
-
Verwenden Sie die Methode
OrderBy
, um eine Liste nach einer Eigenschaft des Objekts in C# zu sortieren - Verwenden Sie einen Delegierten, um eine Liste nach einer Eigenschaft im Objekt in C# zu sortieren
In diesem Artikel werden verschiedene Methoden zum Sortieren einer Liste nach einer Eigenschaft im Objekt unter Verwendung von C#-Code vorgestellt.
- Verwendung der
OrderBy
-Methode - Verwendung des Delegierten
Verwenden Sie die Methode OrderBy
, um eine Liste nach einer Eigenschaft des Objekts in C# zu sortieren
Wir werden die eingebaute Funktion OrderBy
verwenden, um eine Liste nach einer Eigenschaft des Objekts zu sortieren. Dies ist die Methode von LINQ. Diese Methode erzeugt eine neue Liste, die nach der angegebenen Eigenschaft sortiert ist. Die korrekte Syntax für die Verwendung dieser Methode zum Sortieren einer Liste nach einer Eigenschaft lautet wie folgt.
ListName.Orderby(varName => varName.property);
Die eingebaute Funktion OrderBy
hat zwei Parameter. Die Einzelheiten ihrer Parameter sind wie folgt.
Parameter | Beschreibung | |
---|---|---|
varName |
obligatorisch | Es ist der Variablenname für die gegebene Liste. |
property |
obligatorisch | Es ist die Eigenschaft, die wir zum Sortieren unserer Liste verwenden werden. |
Das folgende Programm zeigt, wie wir diese Funktion verwenden können, um eine Liste nach einer Eigenschaft des Objekts zu sortieren.
using System;
using System.Linq;
using System.Collections.Generic;
public class Flowers {
public string name;
public int priority;
public Flowers(string name, int priority) {
this.name = name;
this.priority = priority;
}
public override string ToString() {
return "[" + name + "," + priority + "]";
}
}
public class Example {
public static void Main() {
Flowers hibiscus = new Flowers("Hibiscus", 3);
Flowers rose = new Flowers("Rose", 1);
Flowers lili = new Flowers("Lili", 4);
List<Flowers> mylist = new List<Flowers>() { hibiscus, rose, lili };
List<Flowers> sorted = mylist.OrderBy(x => x.priority).ToList();
Console.WriteLine(String.Join(Environment.NewLine, sorted));
}
}
Ausgabe:
[Rose,1]
[Hibiscus,3]
[Lili,4]
Verwenden Sie einen Delegierten, um eine Liste nach einer Eigenschaft im Objekt in C# zu sortieren
Wir können auch den benutzerdefinierten Delegierten verwenden, um eine Liste nach einer Eigenschaft im Objekt zu sortieren. Die korrekte Syntax zur Verwendung eines delegate
lautet wie folgt.
[access modifier]
delegate[return type][delegate name]([parameters])
Das Programm unten zeigt, wie wir einen delegate
verwenden können, um eine Liste nach einer Eigenschaft im Objekt zu sortieren.
using System;
using System.Linq;
using System.Collections.Generic;
public class Flowers {
public string name;
public int priority;
public Flowers(string name, int priority) {
this.name = name;
this.priority = priority;
}
public override string ToString() {
return "[" + name + "," + priority + "]";
}
}
public class Example {
public static void Main() {
Flowers hibiscus = new Flowers("Hibiscus", 3);
Flowers rose = new Flowers("Rose", 1);
Flowers lili = new Flowers("Lili", 4);
List<Flowers> mylist = new List<Flowers>() { hibiscus, rose, lili };
mylist.Sort(delegate(Flowers x, Flowers y) { return x.priority.CompareTo(y.priority); });
Console.WriteLine(String.Join(Environment.NewLine, mylist));
}
}
Ausgabe:
[Rose,1]
[Hibiscus,3]
[Lili,4]
Verwandter Artikel - Csharp Method
- Optionaler Parameter in C#
- Wie übergibt man eine Methode als Parameter in einer C#-Funktion
- C# Übergabe mehrerer Parameter an eine Get-Methode
- Überschreiben einer statischen Methode in C#
- Methodengruppen in C#