{"id":649,"date":"2022-05-08T17:00:10","date_gmt":"2022-05-08T10:00:10","guid":{"rendered":"https:\/\/csharptutorial.net\/?page_id=649"},"modified":"2022-06-03T15:14:54","modified_gmt":"2022-06-03T08:14:54","slug":"csharp-lambda-expression","status":"publish","type":"page","link":"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-lambda-expression\/","title":{"rendered":"C# Lambda Expressions"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you&#8217;ll learn about C# lambda expressions and how to use them to define anonymous functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to C# lambda expressions<\/h2>\n\n\n\n<p>A lambda expression is an <a href=\"https:\/\/csharptutorial.net\/csharp-tutorial\/csharp-anonymous-methods\/\">anonymous method<\/a> written in place of a <a href=\"https:\/\/csharptutorial.net\/csharp-tutorial\/csharp-delegate\/\">delegate<\/a> instance. A lambda expression is used to create an anonymous function. <\/p>\n\n\n\n<p>A lambda expression can have one of two forms: expression lambda and statement lambda. <\/p>\n\n\n\n<p>An expression lambda has an expression in its body:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">(parameters) =&gt; expression<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>A statement lambda has a statement block as its body:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">(parameters) =&gt; { statements; }<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this syntax, the <code>=&gt;<\/code> is called the lambda operator. <\/p>\n\n\n\n<p>To form a lambda expression, you specify input parameters on the left side of the lambda operator and an expression or statement block on the right side.<\/p>\n\n\n\n<p>If a lambda expression doesn&#8217;t have any input parameter, you can use an empty parentheses <code>()<\/code>. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">() =&gt; expression;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If a lambda expression has exactly one parameter and the C# compiler can infer the type of the parameter, you can omit the parentheses like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Func&lt;T, TResult&gt; lambda = parameter =&gt; expression;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If a lambda expression has multiple parameters, you can use a comma to separate between two parameters as follows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">(p1, p2, p3) =&gt; expression;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">C# lambda expression examples<\/h2>\n\n\n\n<p>The following example defines a lambda expression that returns the square of an integer:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> square = (<span class=\"hljs-keyword\">int<\/span> x) =&gt; x * x;\n<span class=\"hljs-keyword\">var<\/span> result = square(<span class=\"hljs-number\">10<\/span>);\n\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, the following is a lambda expression:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">(<span class=\"hljs-keyword\">int<\/span> x) =&gt; x * x;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It accepts an integer and returns the square of that integer.<\/p>\n\n\n\n<p>If you want to use the statement lambda, you need to use a return statement inside the statement block. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> square = (<span class=\"hljs-keyword\">int<\/span> x) =&gt;\n{\n    <span class=\"hljs-keyword\">return<\/span> x * x;\n};\n\n<span class=\"hljs-keyword\">var<\/span> result = square(<span class=\"hljs-number\">10<\/span>);\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Note that you can explicitly specify the return type of a lambda expression. For example, the following explicitly uses int as the return type of the lambda expression:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> square = <span class=\"hljs-keyword\">int<\/span> (<span class=\"hljs-keyword\">int<\/span> x) =&gt; x * x;\n<span class=\"hljs-keyword\">var<\/span> result = square(<span class=\"hljs-number\">10<\/span>);\n\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When the C# compiler encounters a lambda expression, it converts the lambda expression to a delegate instance. In the above example, the C# compiler converts the lambda expression to <code>Func&lt;int,int&gt;<\/code>. See the following example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Func&lt;<span class=\"hljs-keyword\">int<\/span>,<span class=\"hljs-keyword\">int<\/span>&gt; square = x =&gt; x * x;\n<span class=\"hljs-keyword\">var<\/span> result = square(<span class=\"hljs-number\">10<\/span>);\n\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we declare the <code>square<\/code> as an instance of the <code>Func&lt;int,int&gt;<\/code>.  <\/p>\n\n\n\n<p>Because the <code>Func&lt;int, int><\/code> accepts an integer and returns an integer, we don&#8217;t need to explicitly specify the type for the input parameter of the lambda expression. Therefore, we can omit the parentheses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Capturing outer variables<\/h2>\n\n\n\n<p>A lambda expression can reference any variables including local variables, parameters, and members that are accessible from the location where you define the lambda expression. These variables are called <strong>outer variables<\/strong>.<\/p>\n\n\n\n<p>The variables referenced by a lambda expression are known as <strong>captured variables<\/strong>. When a lambda expression has captured variables, it is called a <strong>closure<\/strong>. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">int<\/span> factor = <span class=\"hljs-number\">10<\/span>;\n\n<span class=\"hljs-keyword\">var<\/span> multiplier = (<span class=\"hljs-keyword\">int<\/span> x) =&gt; x * factor;\n\n<span class=\"hljs-keyword\">var<\/span> result = multiplier(<span class=\"hljs-number\">10<\/span>);\n\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, the lambda expression references the local variable <code>factor<\/code>. The <code>factor<\/code> variable is called an outer variable. And the lambda expression is a closure.<\/p>\n\n\n\n<p>It&#8217;s important to note that the lambda expression evaluates the captured variables when it is executed, not when the variables were captured. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> multipliers = <span class=\"hljs-keyword\">new<\/span> List&lt;Func&lt;<span class=\"hljs-keyword\">int<\/span>, <span class=\"hljs-keyword\">int<\/span>&gt;&gt;();\n\n<span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">1<\/span>; i &lt;= <span class=\"hljs-number\">3<\/span>; i++)\n{\n    multipliers.Add((<span class=\"hljs-keyword\">int<\/span> x) =&gt; x*i);\n}\n\n\n\n<span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> multipler <span class=\"hljs-keyword\">in<\/span> multipliers)\n{\n    <span class=\"hljs-keyword\">int<\/span> result = multipler(<span class=\"hljs-number\">10<\/span>);\n    Console.WriteLine(result);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<p>First, define a list of lambda expressions that accept an integer and return an integer:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> multipliers = <span class=\"hljs-keyword\">new<\/span> List&lt;Func&lt;<span class=\"hljs-keyword\">int<\/span>, <span class=\"hljs-keyword\">int<\/span>&gt;&gt;();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, add three multipliers to the list. Each multiplier will multiply its argument by 1, 2, and 3.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">1<\/span>; i &lt;= <span class=\"hljs-number\">3<\/span>; i++)\n{\n    multipliers.Add((<span class=\"hljs-keyword\">int<\/span> x) =&gt; x*i);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, iterate over the lambda expression list and execute each of them:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> multipler <span class=\"hljs-keyword\">in<\/span> multipliers)\n{\n    <span class=\"hljs-keyword\">int<\/span> result = multipler(<span class=\"hljs-number\">10<\/span>); <span class=\"hljs-comment\">\/\/ multipler uses 4<\/span>\n    Console.WriteLine(result);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The output is not what you may expect:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-number\">40<\/span>\n<span class=\"hljs-number\">40<\/span>\n<span class=\"hljs-number\">40<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It returns the same result (40) for the three lambda expressions.<\/p>\n\n\n\n<p>The reason is that after the first for loop, the variable <code>i<\/code> is 4. Because the lambda expressions evaluate the capture variables at the time of invocation, not at the defined time. Therefore, all three lambda expressions use the same value of the variable <code>i<\/code>.<\/p>\n\n\n\n<p>To fix this, you need to create a local variable inside the <code>for<\/code> loop and use that variable as the captured variable for the lambda expressions, like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> multipliers = <span class=\"hljs-keyword\">new<\/span> List&lt;Func&lt;<span class=\"hljs-keyword\">int<\/span>, <span class=\"hljs-keyword\">int<\/span>&gt;&gt;();\n\n<span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">1<\/span>; i &lt;= <span class=\"hljs-number\">3<\/span>; i++)\n{\n    <span class=\"hljs-keyword\">int<\/span> factor = i;\n    multipliers.Add((<span class=\"hljs-keyword\">int<\/span> x) =&gt; x*factor);\n}\n\n<span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> multipler <span class=\"hljs-keyword\">in<\/span> multipliers)\n{\n    <span class=\"hljs-keyword\">int<\/span> result = multipler(<span class=\"hljs-number\">10<\/span>); \n    Console.WriteLine(result);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-number\">10<\/span>\n<span class=\"hljs-number\">20<\/span>\n<span class=\"hljs-number\">30<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, each iteration creates a new <code>factor<\/code> variable. Therefore, each lambda expression captures a different variable. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Static lambda expressions<\/h2>\n\n\n\n<p>When a lambda expression captures variables, the C# compiler needs to create a private class and instantiate it to store a reference to the captured variables. This incurs a small performance.<\/p>\n\n\n\n<p>Starting with C# 9, you can use a static keyword to ensure that the lambda expression doesn&#8217;t capture any variables. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> square = <span class=\"hljs-keyword\">static<\/span> (<span class=\"hljs-keyword\">int<\/span> x) =&gt; x * x;\n<span class=\"hljs-keyword\">var<\/span> result = square(<span class=\"hljs-number\">10<\/span>);\n\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When you use the <code>static<\/code> keyword and capture variables, the C# compiler will issue an error. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">int<\/span> factor = <span class=\"hljs-number\">2<\/span>;\n<span class=\"hljs-keyword\">var<\/span> square = <span class=\"hljs-keyword\">static<\/span> (<span class=\"hljs-keyword\">int<\/span> x) =&gt; x * factor; <span class=\"hljs-comment\">\/\/ ERROR<\/span>\n\n<span class=\"hljs-keyword\">var<\/span> result = square(<span class=\"hljs-number\">10<\/span>);\nConsole.WriteLine(result); <span class=\"hljs-comment\">\/\/ 100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>A lambda expression defines an anonymous function.<\/li><li>A lambda expression can capture variables.<\/li><li>When a lambda expression contains captured variables, it&#8217;s called a closure.<\/li><li>A lambda expression evaluates the captured variables at the time of invocation.<\/li><\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful ?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"649\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-lambda-expression\/\"\n\t\t\t\tdata-post-title=\"C# Lambda Expressions\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"649\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-lambda-expression\/\"\n\t\t\t\tdata-post-title=\"C# Lambda Expressions\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you&#8217;ll learn about C# lambda expressions and how to use them to define anonymous functions.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":7,"menu_order":72,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-649","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/comments?post=649"}],"version-history":[{"count":5,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/649\/revisions"}],"predecessor-version":[{"id":733,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/649\/revisions\/733"}],"up":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/7"}],"wp:attachment":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/media?parent=649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}