Avatar ·

Dynamische LINQ-Sortierung: Wie wende ich OrderBy auf IEnumerable/IQueryable mit einem Eigenschaftsnamen aus einem String an?

Hallo zusammen! Ich bin neu in C# und LINQ und stehe vor einer Aufgabe, die mich ratlos macht.\n\nIch habe eine Sammlung von `IEnumerable`-Objekten (oder `IQueryable`) und möchte sie nach verschiedenen Feldern sortieren, je nach Benutzerauswahl. Der Benutzer übergibt den Feldnamen (z. B. "Name" oder "Date") und die Sortierrichtung ("asc" oder "desc") als Strings. Wie kann ich dynamisch `OrderBy` oder `OrderByDescending` auf die Sammlung anwenden, indem ich diese Strings verwende?\n\nDas Problem ist, dass `OrderBy` eine generische Methode ist, die die Angabe der Eigenschaft zur Kompilierzeit über einen Lambda-Ausdruck erfordert (z. B. `list.OrderBy(x => x.Name)`). Ich kann nicht einfach `list.OrderBy("Name")` schreiben.\n\nHier ist ein Beispielcode, der nicht funktioniert:\n\n```csharp\npublic List SortPeople(IEnumerable people, str