C#入門⑤ ラムダ式
ラムダ式とは?
ラムダ式とは、簡潔に書ける無名メソッド のことです。
C#ではデリゲートやLINQと組み合わせてよく使われます。
記法は以下の通りです。
(引数) => 式または文ブロック
基本的な例
Func<int, int> square = x => x * x;
Console.WriteLine(square(5)); // 25
ここでは x => x * x がラムダ式で、x を受け取り x * x を返す関数を表しています。
複数引数のラムダ式
Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(3, 4)); // 7
文ブロックを使う場合
処理が複数行にわたる場合は { } で囲みます。
Func<int, int, int> multiply = (a, b) =>
{
int result = a * b;
return result;
};
Console.WriteLine(multiply(3, 5)); // 15
Actionデリゲートとの組み合わせ
戻り値を持たない場合は Action を使います。
Action<string> greet = name => Console.WriteLine("Hello, " + name);
greet("Taro"); // Hello, Taro
LINQとラムダ式
LINQと組み合わせることで、コレクション操作を簡潔に書けます。
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (int n in evenNumbers)
{
Console.WriteLine(n); // 2, 4
}
}
}
まとめ
- ラムダ式は「無名メソッド」を簡潔に書くための構文
Funcは戻り値あり、Actionは戻り値なしで利用できる- 複数引数や文ブロックもサポート
- LINQと組み合わせて使うと強力