LINQ查詢中的OrderBy方法允許有效率地對資料進行排序。但是,如果您想根據參數動態指定排序參數,該怎麼辦呢?本文將指導您完成此操作。
假設您有一個Student物件的列表,並希望按其Address屬性對其進行排序:
<code class="language-csharp">List<Student> existingStudents = new List<Student> { new Student {...}, new Student {...} }; List<Student> orderbyAddress = existingStudents.OrderBy(c => c.Address).ToList();</code>
但是,這將位址排序硬編碼了。
要動態指定排序參數,您可以利用反射來建構表達式樹:
<code class="language-csharp">public static IQueryable<T> OrderBy<T>(this IQueryable<T> source, string orderByProperty, bool desc) { // ... (此处应提供答案中的代码片段) }</code>
您現在可以使用具有動態參數的OrderBy擴充方法:
<code class="language-csharp">string param = "City"; List<Student> orderbyCity = existingStudents.OrderBy("City", true).ToList(); // 降序排序</code>
這種方法提供了在運行時指定排序參數的靈活性,允許在LINQ查詢中進行可自訂和動態的排序。
以上是如何使用參數在 LINQ 中動態排序資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!