導入
Whereが「絞り込み」なら、Selectは「変換」です。各要素を別の値に写し替える(射影する)ときに使います。
図解
flowchart LR
IN["[1, 2, 3]"] --> S["Select(n => n * n)<br/>各要素を2乗"]
S --> OUT["[1, 4, 9]"]
style S fill:#e8f5e9
サンプル
int[] numbers = { 1, 2, 3, 4 };
// Select: 各要素を別の値へ変換する
var squares = numbers.Select(n => n * n);
Console.WriteLine(string.Join(", ", squares)); // 1, 4, 9, 16
// 文字列への変換もできる
string[] names = { "taro", "hanako" };
var greetings = names.Select(name => $"こんにちは、{name}さん");
foreach (var g in greetings)
Console.WriteLine(g);
// こんにちは、taroさん / こんにちは、hanakoさん
Select(要素 => 変換後の値)で各要素を写し替えるstring.Join(", ", コレクション)は要素を区切り文字で連結する便利メソッドWhere(絞り込み)とSelect(変換)はつなげて書ける
演習
int[] prices = { 100, 200, 300 };
// TODO: Select で各価格に消費税10%を足した金額(int)に変換し、
// string.Join でカンマ区切り出力してください(110, 220, 330)
___
- 期待される出力:
110, 220, 330
ヒント1を見る
prices.Select(p => p * 110 / 100) で税込に変換します
ヒント2を見る
Console.WriteLine(string.Join(", ", prices.Select(p => p * 110 / 100)));
まとめ
Select(要素 => 変換後)で各要素を別の形に変換するstring.Joinで結果を連結して表示できるWhereとSelectを組み合わせて絞り込み+変換ができる
次回: 件数・合計などの集計です。