C# の ラムダ式(Lambda Expression) は、「無名関数(名前のない関数)」を簡潔に書くための構文です。
短い処理を一時的に使いたいときに便利で、Action や Func などのデリゲート型に直接渡すことができます。
基本構文
C#
(parameters) => { 処理内容 }parameters: 引数(ない場合は())- =>: 「〜を実行して」という意味の矢印演算子
{ 処理内容 }: 実際に実行されるコード
例1:引数なしのラムダ式
C#
Action greet = () => Console.WriteLine("Hello, World!");
greet(); // 出力: Hello, World!上記のラムダ式は「Console.WriteLine("Hello, World!"); を実行する無名関数」を greet に代入しています。
例2:引数ありのラムダ式
C#
Func<int, int, int> multiply = (x, y) => x * y;
Console.WriteLine(multiply(3, 4)); // 出力: 12ここでは (x, y) が引数で、x * y が返り値です。Func<int, int, int> は「int型を2つ受け取り、int型を返す関数」という意味になります。
例3:ラムダ式をその場で使う
C#
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// 条件に一致する要素を探す(Findにラムダ式を直接渡す)
int result = numbers.Find(n => n > 3);
Console.WriteLine(result); // 出力: 4この n => n > 3 は「n が 3 より大きいか」を判定する関数です。
つまり、Find に「条件式そのもの」を渡しているイメージになります。
省略のルール
ここまでもしれっと省略してきましたが、1行で処理が終わる場合は {} や return を省略できます。
C#
Func<int, int> square = x => x * x;複数行書きたい場合は {} をつけ、 return を明示します。
C#
Func<int, int> squareVerbose = x =>
{
int result = x * x;
return result;
};おわりに
ラムダ式は 短く・読みやすく・柔軟 にコードを書くための非常に強力な構文です。
慣れてくると、「小さな処理をサッと書く」ための強い味方になります。


コメント