簡潔な書き方ができる「ラムダ式(Lambda Expression)」とは?
C#の ラムダ式(Lambda Expression) は、短く簡潔に書ける無名メソッド(関数)のことです。
関数やメソッドを変数や引数として使う際に、簡単に処理内容を定義できる便利な構文です。
基本構文
(引数) => 式 または 処理ブロック
例:1つの引数で1行の処理
x => x * x
複数引数・複数文の処理
(a, b) => {
int sum = a + b;
return sum;
}
ラムダ式を使った例(Func / Action)
// Func:戻り値あり
Func square = x => x * x;
Console.WriteLine(square(5)); // → 25
// Action:戻り値なし
Action greet = name => Console.WriteLine("こんにちは " + name);
greet("太郎"); // → こんにちは 太郎
LINQと組み合わせた使用例
List numbers = new List { 1, 2, 3, 4, 5 };
var even = numbers.Where(n => n % 2 == 0); // 偶数を抽出
foreach (var n in even) {
Console.WriteLine(n); // → 2, 4
}
イベント処理での活用
button.Click += (sender, e) => {
Console.WriteLine("ボタンが押されました!");
};
メリット
- 匿名メソッドよりもシンプルに記述できる
- 関数型の処理と相性が良い(LINQ・イベントなど)
- 処理を一時的に定義するのに便利
注意点
- 処理が長くなる場合は、メソッドに分ける方が可読性が高くなる
- ラムダ式内で使う外部変数はクロージャとして保持される(メモリ管理に注意)
まとめ
ラムダ式(Lambda Expression)は、コードを短く・柔軟に記述できる方法であり、
LINQ、デリゲート、イベント処理などあらゆる場面で活躍します。
まずは x => x + 1
のような1行から慣れていき、読みやすく保つ工夫も意識していきましょう!