ホームページ >バックエンド開発 >C++ >パラメーターを使用して LINQ でデータを動的に並べ替えるにはどうすればよいですか?

パラメーターを使用して LINQ でデータを動的に並べ替えるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-10 11:54:43436ブラウズ

How Can I Dynamically Order Data in LINQ Using a Parameter?

LINQ 動的並べ替え: OrderBy メソッドの動的パラメーターを理解する

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。