●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

簡潔な書き方ができる「ラムダ式(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行から慣れていき、読みやすく保つ工夫も意識していきましょう!

 

C#関連用語集

−−−−−  C#  −−−−−

C#の基本単位「クラス(Class)」とは?

クラスから生まれる実体「オブジェクト(Object)」とは?

クラスの実体「インスタンス(Instance)」とは?

オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?

フィールドへのアクセスを制御!「プロパティ(Property)」とは?

クラスが持つデータ「フィールド(Field)」とは?

クラスの動作を定義する「メソッド(Method)」とは?

既存のクラスを引き継ぐ「継承(Inheritance)」とは?

同じ命令で異なる動きができる「多態性(Polymorphism)」とは?

データを守る「カプセル化(Encapsulation)」とは?

土台だけを用意する「抽象クラス(Abstract Class)」とは?

ルールを定める仕組み「インターフェース(Interface)」とは?

親クラスのメソッドを上書きする「オーバーライド(Override)」とは?

引数の違いで同じ名前が使える「オーバーロード(Overload)」とは?

C#で自分自身を指す「thisキーワード」とは?

親クラスの機能を使う「baseキーワード」とは?

インスタンス不要で使える「static(静的)」とは?

値を変えたくないときに使う「readonly / const(定数)」とは?

メソッドを渡せる仕組み「delegate(デリゲート)」とは?

「何かが起きたら知らせる」仕組み「event(イベント)」とは?

簡潔な書き方ができる「ラムダ式(Lambda Expression)」とは?

C#で使える「LINQ(言語統合クエリ)」とは?

エラーから安全に回復する「例外処理(try-catch-finally)」とは?

意図的にエラーを発生させる「throw(スロー)」とは?

名前空間やリソースを扱う「usingディレクティブ」とは?

クラスの整理に便利な「namespace(名前空間)」とは?

型を柔軟に扱う「ジェネリクス(Generics)」とは?

データの集まりを扱う「コレクション(List / Dictionary / HashSet)」とは?

処理を止めずに進める「非同期処理(async / await)」とは?

簡単に使えて便利!「自動実装プロパティ」と「プロパティ初期化子」