Wenn Sie nur Sort()
wollen, arbeiten dann müssen Sie IComparable
oder IComparable<T>
in der Klasse implementieren.
Wenn Sie nichts dagegen haben eine neue Liste erstellen, können Sie die OrderBy
/ToList
LINQ-Erweiterungsmethoden verwenden. Wenn Sie die vorhandene Liste mit einfacher Syntax sortieren möchten, können Sie ein paar Erweiterungsmethoden hinzufügen, so dass:
list.Sort(item => item.Name);
Zum Beispiel:
public static void Sort<TSource, TValue>(
this List<TSource> source,
Func<TSource, TValue> selector)
{
var comparer = Comparer<TValue>.Default;
source.Sort((x, y) => comparer.Compare(selector(x), selector(y)));
}
public static void SortDescending<TSource, TValue>(
this List<TSource> source,
Func<TSource, TValue> selector)
{
var comparer = Comparer<TValue>.Default;
source.Sort((x, y) => comparer.Compare(selector(y), selector(x)));
}
Welche sprengen, wenn a.Name ist null ... –
Sie könnten einfach string.Compare (a.Name, b.Name) verwenden, was wäre sicher? –
Danke! Lerne jeden Tag etwas Neues ... Ich bearbeite die Antwort. –