ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
C# プログラミングの分野では、ラムダ式は最も強力な機能の一つです。 これらの簡潔で表現力豊かな構造は、開発者がコンパクトでありながらも堅牢なコードを書くことを可能にし、可読性、保守性、全体的な効率を向上させます。
この記事では、C#ラムダ式について深く掘り下げ、その構文、使用例、利点、および高度な技術を探っていきます。 また、探索していきます。IronPdfの機能からIron SoftwareC#アプリケーションでPDFドキュメントをオンザフライで生成できます。
ラムダ式は、C# 3.0で導入され、匿名関数やデリゲートを簡潔に定義する方法を提供します。 それらは基本的にインライン匿名関数で、デリゲート型が期待される場所で使用できます。
ラムダ式の構文は次のとおりです:
(parameters) => expression // lambda operator oe method syntax
x=> x*x // expression to square a number
(parameters) => expression // lambda operator oe method syntax
x=> x*x // expression to square a number
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'(parameters) => expression x=> x*x ' expression to square a number
こちらでは、パラメーターはラムダ式の入力パラメーターであり、式は実行される文または文のブロックです。 .NET 共通言語ランタイムは、コンパイル時に各ラムダ式のために匿名関数を作成します。
次に、リスト内の整数から偶数をフィルターする例として、ラムダ式を見てみましょう。
これを達成するために、List<T>
.FindAll` メソッドとラムダ式:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> evenNumbers = numbers.FindAll(x => x % 3 == 0);
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> evenNumbers = numbers.FindAll(x => x % 3 == 0);
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim evenNumbers As List(Of Integer) = numbers.FindAll(Function(x) x Mod 3 = 0)
上記の例では、x => x % 3 == 0
は、整数 x を入力パラメーターとして受け取り、x
が偶数である場合は true を返し、そうでない場合は false を返すラムダ式です。ラムダ本体の式は各配列要素に対して実行されます。
モダンなアプリケーションプログラミングにおいて、Lambda式の利用はさまざまなユースケースで見られます。
LINQ クエリ: ラムダ式は LINQ で広く使用されます(言語統合クエリ (言語統合クエリ (Language Integrated Query)))データコレクションに対してフィルタリング、投影、並べ替え、およびグループ化操作を実行するために。
イベント処理:イベントとデリゲートを扱う際、ラムダ式はインラインでイベントハンドラーを定義するための簡潔な方法を提供します。
非同期プログラミング:Task.Run
のような非同期プログラミングパターンでは、ラムダ式を使用して実行される非同期操作を定義することができます。
=>
を使ったラムダ式は、式ラムダと呼ばれます。 以下の形式を取ります:
x=> x*x // expression to square a number
x=> x*x // expression to square a number
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'x=> x*x ' expression to square a number
上記の例では、数値の平方を作成しています。 式ラムダでは、ボディにメソッド呼び出しを含めることができます。 ただし、.NET共通言語ランタイムの外で評価することを目的とした式ツリーを生成する場合(CLR (共通言語ランタイム))SQL Serverなどでは、ラムダ式内でのメソッド呼び出しを避けることが推奨されます。
これはメソッドがCLRコンテキストの外では意味を持たない場合があるためです。 したがって、式ツリーを構築する際には、ターゲット環境を考慮して、互換性と意味のある解釈を確保することが重要です。
以下のコードは、ステートメントラムダ式を宣言する方法を示しています。 以下のコードでは、パラメータと本体のみを持つメソッドを持つデリゲートが最初に宣言されています。
次に、必要に応じて、関数/メソッド名がデリゲートパラメーターに追加されます。
Func<int> mySquareDelegate = (x =>
{
return x*x;
});
Console.WriteLine(mySquareDelegate(4));
Func<int> mySquareDelegate = (x =>
{
return x*x;
});
Console.WriteLine(mySquareDelegate(4));
Dim mySquareDelegate As Func(Of Integer) = (Function(x)
Return x*x
End Function)
Console.WriteLine(mySquareDelegate(4))
ラムダ式は囲まれたスコープから変数をキャプチャできます。 この機能は、変数のキャプチャリングまたはクロージャーとして知られ、ラムダ式がその本体外で宣言された変数にアクセスして使用することを可能にします。
int factor = 2;
Func<int, int> multiplier = x => x * factor;
int factor = 2;
Func<int, int> multiplier = x => x * factor;
Dim factor As Integer = 2
Dim multiplier As Func(Of Integer, Integer) = Function(x) x * factor
この例では、ラムダ式 x => x * factor
が囲むスコープから factor
変数をキャプチャしています。
ラムダ式は複数のパラメータを持つことができ、ブロックで囲まれた複数のステートメントを実行することができます。
Func<int, int, int> add = (a, b) =>
{
int result = a + b;
Console.WriteLine($"The sum of {a} and {b} is {result}");
return result;
};
Func<int, int, int> add = (a, b) =>
{
int result = a + b;
Console.WriteLine($"The sum of {a} and {b} is {result}");
return result;
};
Dim add As Func(Of Integer, Integer, Integer) = Function(a, b)
Dim result As Integer = a + b
Console.WriteLine($"The sum of {a} and {b} is {result}")
Return result
End Function
IronPDFを探索するからの多用途で高性能なPDF生成・解析ライブラリである。Iron SoftwarePDFドキュメントを生成するために使用できる。
IronPDFは、次のコマンドを使用してNuGetパッケージマネージャーからインストールできます:
Install-Package IronPdf
以下に示すように、Visual Studioからインストールされます:
では、ラムダ式を使用してPDF生成について詳しく見ていきましょう。
namespace IronPatterns;
class Program
{
static void Main()
{
Console.WriteLine("-----------Iron Software-------------");
var renderer = new ChromePdfRenderer(); // var pattern
var content = " <h1> Iron Software is Awesome </h1> Made with IronPDF!";
content += "<h2>Demo C# lambda expressions</h2>";
content += $"<p>Generating Square of list of numbers x=>x*x</p>";
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> squares = numbers.Select(x => x * x).ToList();
content += $"<p>Numbers list: {string.Join(",",numbers)}</p>";
content += $"<p>Squares: {string.Join(",",squares)}</p>";
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("output.pdf"); // Saves PDF
}
}
namespace IronPatterns;
class Program
{
static void Main()
{
Console.WriteLine("-----------Iron Software-------------");
var renderer = new ChromePdfRenderer(); // var pattern
var content = " <h1> Iron Software is Awesome </h1> Made with IronPDF!";
content += "<h2>Demo C# lambda expressions</h2>";
content += $"<p>Generating Square of list of numbers x=>x*x</p>";
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> squares = numbers.Select(x => x * x).ToList();
content += $"<p>Numbers list: {string.Join(",",numbers)}</p>";
content += $"<p>Squares: {string.Join(",",squares)}</p>";
var pdf = renderer.RenderHtmlAsPdf(content);
pdf.SaveAs("output.pdf"); // Saves PDF
}
}
Namespace IronPatterns
Friend Class Program
Shared Sub Main()
Console.WriteLine("-----------Iron Software-------------")
Dim renderer = New ChromePdfRenderer() ' var pattern
Dim content = " <h1> Iron Software is Awesome </h1> Made with IronPDF!"
content &= "<h2>Demo C# lambda expressions</h2>"
content &= $"<p>Generating Square of list of numbers x=>x*x</p>"
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim squares As List(Of Integer) = numbers.Select(Function(x) x * x).ToList()
content &= $"<p>Numbers list: {String.Join(",",numbers)}</p>"
content &= $"<p>Squares: {String.Join(",",squares)}</p>"
Dim pdf = renderer.RenderHtmlAsPdf(content)
pdf.SaveAs("output.pdf") ' Saves PDF
End Sub
End Class
End Namespace
IronPDFのコードは、から取得した試用ライセンスのみで実行できます。IronPDFトライアルライセンスページ. メールアドレスをポップアップに入力してライセンスキーを生成し、そのキーをメールに送信してください。
"IronPDF.LicenseKey": "<Your Key>"
AppSettings.Jsonファイルにライセンスキーを配置してください。
C# のラムダ式は、インライン関数を簡潔かつ表現豊かに定義する方法を提供し、コードの可読性、保守性、および効率性を向上させます。 それらは、LINQクエリ、イベント処理、非同期プログラミング、および関数型プログラミングを含むさまざまな領域で応用されています。
ラムダ式をマスターすることにより、開発者はC#コードベースで生産性と優雅さの新たな次元を解き放つことができます。
あなたが経験豊富なC#開発者であろうと、またはプログラミングの旅を始めたばかりであろうと、ラムダ式の力を理解し活用することは、間違いなくあなたのプログラミングスキルを新たな高みへと引き上げるでしょう。
では、C#プロジェクトでラムダ式の美しさを体験し、実験し、受け入れてください。!
9つの .NET API製品 オフィス文書用