【C#入門】C#のラムダ式について基礎から解説
ラムダ式とは、C#において煩雑になりそうなデリゲードやLINQなどのメソッド記述を簡潔にするために導入されたものです。ラムダ式を利用することで、複数行にわたって記述する構文を1行にすることも可能なので、コード全体がかなりスマートになります。
- プログラマー
- ラムダ式を利用したいのですが、どうやって書いたらいいですか?
- プロジェクト
リーダー - 少し書き方にポイントがあるので、基本的なところから見ていきましょう。
ラムダ式の概要
ラムダ式はC# 3.0(Visual C# 2008)以降に導入された言語仕様で、メソッドの記述を簡潔にするためのものです。引数の指定で型推論を行ってくれるため、型名を記述しない分シンプルなコードを記述することができます。
基本構文としては左辺にパラメータを指定して=>で区切った後、右辺に式もしくは文を記述する形式です。なお、文の最後にセミコロン(;)を付けないのもラムダ式の特徴といえます。
ラムダ式のループ処理に関するサンプルコード
ループ処理を行う場合、ラムダ式による記述はいくつかパターンがあります。C#においてはForeachメソッドがよく使われるので、引数の指定方法が通常のやり方とどう違うのかを見ていきましょう。引数の型はラムダ式では省略されていることにも注目です。
1
2
3
4
5
6
7
8
9
10
11
12
|
using System;
public class tuple_test{
public static void Main(){
int[] test_ary1 = { 4, 8, 2, 6, 0 };
int[] test_ary2 = Array.ConvertAll(test_ary1, i => i + 1);
for (int i = 0; i < test_ary2.Length; i++)
{
System.Console.WriteLine(test_ary2[i]);
}
}
}
|
実行結果
1
2
3
4
5
|
5
9
3
7
1
|
このコードでは、int配列の中にある要素にconvertallメソッドを使って1を足しています。
1
2
3
4
5
6
7
8
9
|
using System;
using System.Linq;
public class Linq_test{
public static void Main(){
int[] test_ary1 = { 4, 8, 2, 6, 0 };
test_ary1.ToList().ForEach(x => Console.WriteLine(x + 1));
}
}
|
実行結果
1
2
3
4
5
|
5
9
3
7
1
|
このコードは、前述のconvertallメソッドをLinqのラムダ式で書き直したものです。
1
2
3
4
5
6
7
8
9
10
11
|
using System;
using System.Collections.Generic;
class test {
static void Main()
{
List<string> test_list = new List<string>() {"A", "B", "C", "D", "E"};
test_list.ForEach(e => Console.WriteLine(e));
}
}
|
実行結果
1
2
3
4
5
|
A
B
C
D
E
|
このコードでは、文字配列内のすべての要素を参照して表示しています。
- プログラマー
- ラムダ式を利用してみると、コードがすごく短くなって読みやすくなりますね!
- プロジェクト
リーダー - 通常の書き方と少し違う点はありますが、慣れればメンテナンスもしやすくなるでしょう。
ラムダ式を使いこなせばコードがよりシンプルになる
ラムダ式を使う最大の利点は、コーディングの簡素化が可能になることでしょう。コードが短くなることでメンテナンス性も向上し、より扱いやすいものになります。ただし、型名の省略によって型推論が働くため、引数の名前だけで型名を推察できるように変数の命名規約を明確にしておく必要があるでしょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)