1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rider 2025.1で追加された「Debug LINQ expressions」について

Posted at

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が出てきます。

スクリーンショット 2025-04-16 22.44.36.png

「Explore LINQ」をクリックすると、次の様な「Stream Trace」というタイトルのウィンドウが表示されます。ウィンドウには、データソースとなるpersonsが表示されています。

スクリーンショット 2025-04-16 22.46.09.png

次の画像は、Whereタブを選択した状態です。Whereメソッドで選択している様子を確認できます。

スクリーンショット 2025-04-16 22.46.11.png

次の画像は、Selectタブを選択した状態です。Selectメソッドで射影している様子を確認できます。

スクリーンショット 2025-04-16 22.46.13.png

次の画像は、Orderタブを選択した状態です。Orderメソッドで並び替えしている様子を確認できます。

スクリーンショット 2025-04-16 22.46.21.png

「Flat Modeボタン」を押すと、すべてをまとめて表示することもできます。

スクリーンショット 2025-04-16 22.46.26.png

この様に、効率的にRider 2025.1から追加された「Debug LINQ expressions」で、LINQのメソッドチェインの途中結果を効率的に確認できます。

リンク集

補足

Rider 2025.1 RCでは、Top-level statementsだと「Explore LINQ」というInlay hintsが出てこないかもしれません。(不具合?バグ報告予定です。)

スクリーンショット 2025-04-16 22.55.33.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?