LINQ クエリの OrderBy メソッドを使用すると、データを効率的に並べ替えることができます。しかし、パラメータに基づいて並べ替えパラメータを動的に指定したい場合はどうすればよいでしょうか?この記事ではこれについて説明します。
Student オブジェクトのリストがあり、それらを Address プロパティで並べ替えたいとします。
List<Student> existingStudents = new List<Student> { new Student {...}, new Student {...} }; List<Student> orderbyAddress = existingStudents.OrderBy(c => c.Address).ToList();
ただし、これによりアドレスの順序がハードコーディングされます。
ソートパラメータを動的に指定するには、リフレクションを利用して式ツリーを構築します。
public static IQueryable<T> OrderBy<T>(this IQueryable<T> source, string orderByProperty, bool desc) { // ... (此处应提供答案中的代码片段) }
動的パラメーターを指定して OrderBy 拡張メソッドを使用できるようになりました:
string param = "City"; List<Student> orderbyCity = existingStudents.OrderBy("City", true).ToList(); // 降序排序
このアプローチでは、実行時に並べ替えパラメーターを柔軟に指定できるため、LINQ クエリでのカスタマイズ可能な動的並べ替えが可能になります。
以上がパラメーターを使用して LINQ でデータを動的に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。