C#のLINQメソッドチェインで思った通りの結果にならない時、途中結果を確認できたら便利ですよね。
この投稿ではRider 2025.1から追加された「Debug LINQ expressions」で、LINQのメソッドチェインの途中結果を効率的に確認する方法を紹介します。
- この投稿のスクリーンショットは、Rider 2025.1 RC1のものです
- この投稿では、次の様なコードを使って説明します
public static class Program
{
public static void Main(string[] args)
{
var persons = new List<Person>
{
new ("田中太郎", 35),
new ("鈴木花子", 28),
new ("佐藤一郎", 42),
new ("山田梅子", 29),
new ("田中二郎", 32)
};
var names = persons
.Where(p => p.Age > 30)
.Select(p => p.Name)
.Order();
foreach (var name in names)
{
Console.WriteLine(name);
}
}
}
record struct Person(string Name, int Age);
LINQの処理をする行でブレークポイントを貼り、デバッグ実行します。すると、「Explore LINQ」というInlay hintsが出てきます。
「Explore LINQ」をクリックすると、次の様な「Stream Trace」というタイトルのウィンドウが表示されます。ウィンドウには、データソースとなるpersonsが表示されています。
次の画像は、Whereタブを選択した状態です。Whereメソッドで選択している様子を確認できます。
次の画像は、Selectタブを選択した状態です。Selectメソッドで射影している様子を確認できます。
次の画像は、Orderタブを選択した状態です。Orderメソッドで並び替えしている様子を確認できます。
「Flat Modeボタン」を押すと、すべてをまとめて表示することもできます。
この様に、効率的にRider 2025.1から追加された「Debug LINQ expressions」で、LINQのメソッドチェインの途中結果を効率的に確認できます。
リンク集
補足
Rider 2025.1 RCでは、Top-level statementsだと「Explore LINQ」というInlay hintsが出てこないかもしれません。(不具合?バグ報告予定です。)