ホームページ >バックエンド開発 >C#.Net チュートリアル >C# ラムダ式
C# のラムダ式は匿名関数であり、式または一連のステートメントが含まれており、ラムダ式の実装に使用される演算子は「=>」です。ラムダ式は 2 つの部分で構成され、左側の部分が入力、右側の部分が式です。シンプルなラムダ式は引数を受け取り、値を返します。ラムダ式を使用する最も一般的なシナリオの 1 つはリストです。
C# のラムダ式が何であるかを理解したところで、式を実装するための標準構文を理解しましょう。ラムダ式では、2 つのタイプに対応する 2 つの構文があります。
構文:
input => expression;
構文:
input => { statements };
状況に応じて、開発者はニーズに合うものを自由に選択できます。
ラムダ式を実装する場合、2 つの側面と => のラムダ シンボルが存在します。その間。左側は任意のタイプの入力を受け取り、右側は式またはステートメントを受け取ります。 C# では、ラムダ式はコンパイラが変数の型をそのコンテキストに基づいて推論できるようにする機能を実装しています。この機能は型推論機能と呼ばれます。関数を引数としてメソッド呼び出しに渡すことができます。
すべてのラムダ式は内部的にインターフェイスにマップされます。 Lambda 式を使用してプログラムを実行すると、コンパイラは式のコンテキストに基づいて、どのインターフェイスを割り当てるかを決定します。これはすべてコンパイル時に行われます。これらの式は匿名メソッド、つまり名前のないメソッドであり、関数型インターフェイスで実装されます。
例: それでは、ラムダ式の実装から始めましょう。最初のプログラムでは、ユーザー定義クラスを使用する単純な形式でラムダ式を実装します。2 番目の例は、リスト内で最初に出現する奇数を見つける非常に単純なものになります。それでは、始めましょう。
コード:
using System; using System.Collections.Generic; using System.Linq; class City_Details { public int cityCode { get; set; } public string cityName { get; set; } } class det { public static void Main(string[] args) { List<City_Details> details = new List<City_Details>() { new City_Details{ cityCode = 1, cityName = "Mumbai" }, new City_Details{ cityCode = 2, cityName = "Chennai" }, new City_Details{ cityCode = 3, cityName = "Pune" }, new City_Details{ cityCode = 4, cityName = "Ahmedabad" }, new City_Details{ cityCode = 5, cityName = "Delhi" } }; var newDetails = details.OrderBy(x => x.cityName); foreach(var value in newDetails) { Console.WriteLine(value.cityCode + " " + value.cityName); } } }
コードの説明: システム ファイルをインポートした後、都市コードと cityName の 2 つのプロパティを持つクラスを作成します。次に、main 関数とその他の関数を備えたクラス det があります。ここでは、最初のクラスを呼び出し、都市コードと名前をリスト形式で割り当てます。次に、OrderBy を使用して詳細リストを順序別にリストし、ここでラムダ式を実装します。都市名ごとのリストにデータをリストしたので、foreach ループに入り、次の行をすべて出力します。エラーなしで実行された場合、このコードはリストを出力しますが、内容は異なります。つまり、A で始まるアーメダバードが最初に出力され、プネーが最後に出力されます。以下に添付されている出力のスクリーンショットを参照してください:
ご覧のとおり、出力はアルファベット順に予想どおりです。次に、2 番目の例に移ります。奇数と偶数で構成される単純な数値リストがあります。それでは、2 番目のプログラムを理解して実行してみましょう。
コード:
using System; using System.Collections.Generic; class ExampleTwo { static void Main() { List<int> newList = new List<int>() { 10, 21, 31, 40 }; int oddNumber = newList.FindIndex(x => x % 2 != 0); Console.WriteLine( "\n " + oddNumber); } }
コードの説明: これは、ラムダ式実装の最も単純な例であり、単にリストとラムダ式を使用します。まずシステム ファイル、次に main を持つクラス ExampleTwo を作成します。次に、整数のリストを初期化しました。リストには 4 つの数値が含まれています。これらは 2 つの奇数と 2 つの偶数です。次に、整数変数があります。ここでは FindIndex を使用し、ここで Lambda Expression を使用します。 FindIndex 内では、入力として x があり、出力は数値 2 で割り切れない数値になります。この計算の後、奇数のインデックスが得られます。そして最後に、最初に出現した奇数のインデックス番号を返す出力ステートメントがあります。以下に添付されている出力のスクリーンショットを参照してください:
コードの説明で理解したように、出力は奇数そのものではなく、奇数のインデックス番号になります。ここで、21 のインデックスである 1 が得られます。
C# のラムダ式についてほぼすべてを学習したので、それを使用する利点を理解する必要があります。大きな利点の 1 つは、コードを再利用できることで、読みやすさが向上します。入力の種類を指定しないことにより、最も柔軟な関数の 1 つです。
利点の 1 つは、使用したい場所にラムダ式のメソッドを記述できることです。これは、メソッドを 1 回だけ作成して使用する必要がある場合に最適です。このようにして、多くの労力が節約され、別のメソッドを宣言して作成する必要がなくなります。
どのプログラミング言語でもラムダ式は大いに役立ちます。 C# では、ラムダ式は匿名式として機能します。ここで、 is の左側に入力があり、右側に式またはステートメントのリストがあります。ラムダ式は「=>」で表されます。あらゆる種類の入力を柔軟に行えるため、開発者にとって非常に役立ちます。
以上がC# ラムダ式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。