C#のLINQで商品データを絞り込んで選ぶ
このレッスンでは、LINQの問い合わせをつなげて、条件を満たす商品の絞り込み、並べ替え、名前の取り出しを行います。
はじめに
LINQの問い合わせでは、絞り込み、並べ替え、データの選択(射影、projection)といった複数の手順を、ひと続きの処理としてつなげられます。大事なのは、問い合わせが元のリストを変えず、新しい結果を作るだけだということです。
Whereは価格が20以上の商品を残し、OrderByはそれを価格の安い順に並べ、Selectは商品名だけを取り出します。結果はBook, Bagで、元の配列productsには3つの商品がそのまま残っています。
実行できる C# の例
C#
Program.cs
using System;
using System.Linq;
record Product(string Name, decimal Price);
class Program
{
static void Main()
{
var products = new[] { new Product("Book", 30), new Product("Pen", 5), new Product("Bag", 45) };
var names = products.Where(p => p.Price >= 20).OrderBy(p => p.Price).Select(p => p.Name);
Console.WriteLine(string.Join(", ", names));
}
}
Book, Bagデバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
- 選んだキーで並べ替え 実行時に選んだ比較器で、名前または年齢順に人を並べ替え、同順位は一貫した方法で解消します。 簡単
- Above-Average Values Keep the values that are greater than the average. 簡単