LINQ:
LINQ(Language Integrated Query)是.NET Framework 3.5 中引入的一个功能,它提供了一种统一的查询语法,使得我们可以在 C# 代码中直接使用类似 SQL 的查询语句来查询和操作各种数据源,如集合、数据库、XML 等。LINQ 使用标准查询运算符(如 Where
、Select
、OrderBy
等)来完成查询任务,这些运算符都是通用的,可以用于任何支持 IQueryable 或 IEnumerable 接口的数据源。LINQ 查询语句在编译时会被翻译成表达式树,这使得我们可以在运行时对查询进行动态修改。
下面是一个使用 LINQ 查询语句的示例代码:
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
在上面的代码中,我们首先创建了一个整数列表,并初始化了一些数字。然后我们使用 LINQ 查询语句从该列表中筛选出所有偶数,并将结果保存到变量 evenNumbers
中。最后,我们使用 foreach 循环遍历整个结果,并将每个偶数打印出来。
上面的 LINQ 查询语句可以分解为以下几个部分:
from num in numbers
: 这条语句引入了一个范围变量num
,并将其绑定到numbers
列表中的每个元素。这个范围变量可以在查询语句中使用。where num % 2 == 0
: 这条语句用于筛选出所有满足条件num % 2 == 0
的元素。也就是说,它只保留列表中的偶数。select num
: 这条语句用于指定查询结果的形式。在这里,我们只需要返回列表中的每个偶数本身,因此直接使用了范围变量num
作为结果。
Lambda 表达式
Lambda 表达式是 C# 3.0 中引入的一个新特性,它提供了一种简洁的语法来定义匿名方法。Lambda 表达式由参数列表、箭头符号和表达式主体组成,其中参数列表可以省略类型信息。Lambda 表达式可以被赋值给委托类型的变量或作为实参传递给某些方法,从而允许我们编写更加灵活和简洁的代码。
下面是一个使用 Lambda 表达式的示例代码:
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(num => num % 2 == 0);
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
在上面的代码中,我们首先创建了一个整数列表,并初始化了一些数字。然后我们使用 Where
扩展方法从该列表中筛选出所有偶数,并将结果保存到变量 evenNumbers
中。最后,我们使用 foreach 循环遍历整个结果,并将每个偶数打印出来。
上面的 Lambda 表达式可以分解为以下几个部分:
num => num % 2 == 0
: 这条语句定义了一个匿名函数,它接受一个整数类型的参数num
,并返回一个布尔类型的值,表示该数是否为偶数。箭头符号=>
表示“转换为”或“变成”,将左侧的参数列表和右侧的表达式主体连接起来。numbers.Where(...)
: 这条语句调用了Where
扩展方法,该方法接受一个表示筛选条件的委托,并返回一个新的序列,其中只包含满足条件的元素。在这里,我们使用了刚刚定义的匿名函数作为筛选条件。
总结
综上所述,LINQ 和 Lambda 表达式都是 C# 中非常强大的特性,它们可以帮助我们编写更加简洁、灵活和高效的代码。通过熟练掌握 LINQ 和 Lambda 表达式,我们可以大大提高编程效率和代码质量。
标签:语句,LINQ,查询,num,linq,Lambda,表达式,lambda From: https://www.cnblogs.com/GaoUpUp/p/17910551.html