Die OrderBy-Methode in LINQ-Abfragen ermöglicht eine effiziente Sortierung von Daten. Was aber, wenn Sie Sortierparameter basierend auf Parametern dynamisch angeben möchten? Dieser Artikel führt Sie dabei durch.
Angenommen, Sie haben eine Liste von Student-Objekten und möchten diese nach ihrer Adresseigenschaft sortieren:
<code class="language-csharp">List<Student> existingStudents = new List<Student> { new Student {...}, new Student {...} }; List<Student> orderbyAddress = existingStudents.OrderBy(c => c.Address).ToList();</code>
Dadurch wird jedoch die Reihenfolge der Adressen fest codiert.
Um Sortierparameter dynamisch anzugeben, können Sie Reflektion nutzen, um einen Ausdrucksbaum zu erstellen:
<code class="language-csharp">public static IQueryable<T> OrderBy<T>(this IQueryable<T> source, string orderByProperty, bool desc) { // ... (此处应提供答案中的代码片段) }</code>
Sie können jetzt die OrderBy-Erweiterungsmethode mit dynamischen Parametern verwenden:
<code class="language-csharp">string param = "City"; List<Student> orderbyCity = existingStudents.OrderBy("City", true).ToList(); // 降序排序</code>
Dieser Ansatz bietet die Flexibilität, Sortierparameter zur Laufzeit anzugeben, was eine anpassbare und dynamische Sortierung in LINQ-Abfragen ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten in LINQ mithilfe eines Parameters dynamisch anordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!