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 のレビューも受けられます。
すべてのチャレンジ