在LINQ中, Lambda Expression是一个没有名称的函数。它使语法简短明了。尽管lambda表达式不像LINQ查询那样可读, 但它与LINQ查询同等重要, 并且在内部转换为lambda。当我们将lambda表达式用作表达式时, 其范围受到限制。 Lambda表达式以后不能使用。
在LINQ中定义lambda表达式的语法为:
(Input Parameter) => Method Expression
Lambda Expression是动态的, 并在编译时确定类型。在上面左侧的lambda表达式中, 我们有一个方括号(), 其中包含输入参数。
参数的名称可以是任意值, 并且在此参数(=>)之前等于(=), 后跟一个大于(>)符号, 该符号用于从左向右发送或传递参数, 并在在右侧, 我们将使用从左侧参数传递来的输入参数执行操作。
整个语法形成一个Lambda表达式。
在这里, 我们以一个常用的Expression为例:
X => x + 10
在此, x是一个输入参数, 后跟=>运算符, 在该运算符旁边, 有一个表达式, 将数字10加到输入变量(x)上。现在, 输出会将数字10递增到x变量, 这是表达式左侧的输入参数。
C#中的LINQ Lambda表达式示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//list to store the countries type of string
List<string> countries = new List<string>();
countries.Add("India");
countries.Add("US");
countries.Add("Australia");
countries.Add("Russia");
//use lambda expression to show the list of the countries
IEnumerable<string> result = countries.Select(x => x);
//foreach loop to display the countries
foreach (var item in the result)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
}
现在运行该应用程序, 它将显示国家列表, 如下面控制台窗口中的输出所示。
输出
在上面的示例中, 我们使用国家名称创建了一个列表对象(国家), 并且使用lambda表达式从列表对象(国家)中选择国家。
在这里, “选择”是我们用来从列表中选择的属性。 X是输入参数, 位于表达式的左侧, 后跟=>运算符。在表达式的右侧, 我们有相同的输入参数表示, 我们希望在不执行任何操作的情况下显示该参数。我们没有对此指定任何条件。