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 中国語 Web サイトの他の関連記事を参照してください。