C# 演習

C#のLINQの絞り込み条件をデバッグする

このレッスンでは、ブレークポイントを使ってLINQが各要素をどう調べるかを観察し、間違った絞り込み条件を直します。

はじめに

LINQの問い合わせが期待どおりの結果にならないとき、条件の関数の中にブレークポイント(breakpoint)を置けば、調べられる値を1つずつ観察できます。この練習では、境界の値で>と>=を取り違えるという、とてもよくある間違いを取り上げます。

合格は70点以上、つまり70点ちょうども含むので、関数IsPassingは>ではなく>=を使う必要があります。score > 70と書くと、70点が誤って外されてしまいます。条件を直すと、結果は70, 71になります。IsPassingにブレークポイントを置いてデバッグモードで実行し、LINQが点数ごとにこの関数を呼ぶ様子を確かめましょう。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;
using System.Linq;
class Program
{
    static bool IsPassing(int score) => score >= 70;
    static void Main()
    {
        int[] scores = { 69, 70, 71 };
        var passing = scores.Where(IsPassing);
        Console.WriteLine(string.Join(", ", passing));
    }
}
実行結果
70, 71

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ