ラムダ式の使い方と基本構文
概要
ラムダ式は、C#において関数を簡潔に表現するための機能です。ラムダ式を利用することで、無名関数を簡潔に記述し、コードの可読性を向上させることができます。本記事では、ラムダ式の基本的な構文と使い方について解説します。
コンテンツ
ラムダ式の基本構文
ラムダ式は、以下の基本的な構文を持ちます。
(parameter_list) => expression
ここで、
はラムダ式の引数リストを表し、
はラムダ式の本体を表します。これにより、簡潔な形で関数を定義することができます。
ラムダ式の使用例
ラムダ式の使用例として、整数のリストから偶数を抽出する方法を示します。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.Where(x => x % 2 == 0);
上記の例では、
メソッドにラムダ式を用いて、偶数のみを抽出しています。ラムダ式
は、与えられた数値が2で割り切れるかどうかを判定し、その結果に基づいて抽出を行います。
ラムダ式の複数の引数
ラムダ式は複数の引数を持つこともできます。
(parameter1, parameter2) => expression
上記のように、複数の引数を受け取る場合は、引数をカンマで区切って定義します。
ラムダ式の宣言型
ラムダ式の戻り値の型が明確な場合は、宣言型を使用することができます。
(parameter_list) => { statement; }
ここで、
はラムダ式の本体を表し、
で囲むことで複数のステートメントを含めることができます。
ラムダ式の即時実行
ラムダ式を即時実行することも可能です。
Action action = () => Console.WriteLine("Hello, Lambda!");
action();
上記の例では、ラムダ式を
デリゲートに代入し、即時実行しています。このように、ラムダ式はデリゲートを介して即時実行することができます。
サンプルコード
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, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.Where(x => x % 2 == 0);
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
Action action = () => Console.WriteLine("Hello, Lambda!");
action();
}
}
まとめ
ラムダ式は、C#において関数を簡潔に表現するための機能であり、無名関数を簡潔に記述し、コードの可読性を向上させることができます。ラムダ式は引数リストと本体から構成され、複数の引数を受け取ることも可能です。また、ラムダ式はデリゲートを介して即時実行することもできます。これらの特性を活用することで、より簡潔で読みやすいコードを記述することができます。
よくある質問
- Q. ラムダ式とは何ですか?
-
A: ラムダ式は、C#や他のプログラミング言語で、無名の関数を表現するための簡潔な方法です。通常、ラムダ式は、デリゲートやLINQクエリで使用されます。
-
Q. ラムダ式を使うメリットは何ですか?
-
A: ラムダ式を使うと、関数を簡潔に記述でき、コードの読みやすさが向上します。また、LINQクエリなどでのフィルタリングやソートなどの操作が簡単に行えます。
-
Q. ラムダ式の基本構文はどのようになっていますか?
-
A: ラムダ式の基本構文は、引数リスト、矢印演算子、および式または文からなります。例えば、
(引数) => 式または
(引数) => { 文; }のような形式です。
-
Q. ラムダ式での引数の指定方法は?
-
A: ラムダ式では、引数を丸括弧で囲んで指定します。例えば、
x => x * xのように、引数が1つの場合は丸括弧を省略できますが、複数の引数がある場合は丸括弧で囲みます。
-
Q. ラムダ式を使った具体的な例はありますか?
- A: はい、例えば、
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
というリストがあるとき、
var evenNumbers = numbers.Where(x => x % 2 == 0);のように、
Whereメソッドにラムダ式を渡して、偶数のみをフィルタリングすることができます。