如何在C#中使用Lambda表达式
Lambda表达式最初是在.NET 3.5中引入的,同时提供了语言集成查询(LINQ)。 Lambda表达式就像匿名方法,但具有更大的灵活性。 使用lambda表达式时,无需指定输入的类型。 因此,lambda表达式提供了一种更简短的表示匿名方法的方法。
在本文中,我们将研究如何在C#中使用lambda表达式。 若要使用本文提供的代码示例,您应该在系统中安装Visual Studio 2019。 如果您还没有副本,则可以在此处下载Visual Studio 2019 。
[ 同样在InfoWorld上:您不知道需要的7个Visual Studio Code扩展 ]
在Visual Studio中创建控制台应用程序项目 首先,让我们在Visual Studio中创建一个.NET Core控制台应用程序项目。 假设系统中已安装Visual Studio 2019,请按照以下概述的步骤在Visual Studio中创建新的.NET Core控制台应用程序项目。
- 启动Visual Studio IDE。
- 点击“创建新项目”。
- 在“创建新项目”窗口中,从显示的模板列表中选择“控制台应用程序(.NET Core)”。
- 点击下一步。
- 在接下来显示的“配置新项目”窗口中,指定新项目的名称和位置。
- 单击创建。
Lambda表达的解剖 本质上,lambda表达式是没有声明的方法。 换句话说,lambda表达式是一种没有访问说明符或名称的方法。 Lambda表达式可分为两部分-左部分和右部分。 左部分用于输入,右部分用于编写表达式。
这是在C#中使用lambda表达式的语法。
(Input parameters) => Expression or statement block
您可以使用两种类型的Lambda表达式,即表达式Lambda和语句Lambda。 表达式lambda由左侧的输入和右??侧的表达式组成,如下所示。
input => expression;
语句lambda由左侧的输入和右??侧的一组语句组成,如下所示。
input => { statements };
【如何在C#中使用Lambda表达式】
[ 同样在InfoWorld上:如何在ASP.NET Web API中记录请求和响应元数据 ] C#中的Lambda表达式示例 编写lambda表达式很简单-您只需要从匿名方法中删除委托关键字和参数类型即可。 请考虑以下使用委托关键字以及参数类型的匿名方法。
delegate(Author a) { return a.IsActive && a.NoOfBooksAuthored > 10;
}
上面的语句可以转换为lambda表达式,如下面的代码片段所示。
(a) => { a.IsActive && a.NoOfBooksAuthored > 10;
}
在上面的语句中,
a
是参数,而=>
是lambda运算符。 以下语句是表达式。a.IsActive && a.NoOfBooksAuthored > 10;
这是lambda表达式的另一个示例,该示例在控制台窗口中显示1到9之间的奇数。
List integers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
foreach(int num in integers.Where(n => n % 2 == 1).ToList())
{
Console.WriteLine(num);
}
带和不带参数的Lambda表达式 Lambda表达式可以是无参数的,也可以具有一个或多个参数。 以下代码段说明了没有任何参数的lambda表达式。
() => Console.WriteLine("This is a lambda expression without any parameter");
Lambda表达式也可以具有一个或多个参数。 以下代码段说明了如何将一个参数传递给lambda表达式。
(a, numberOfBooksAuthored) => a.NoOfBooksAuthored >= numberOfBooksAuthored;
您还可以在lambda表达式中指定参数的类型,如下面的代码段所示。
(a, int numberOfBooksAuthored) => a.NoOfBooksAuthored >= numberOfBooksAuthored;
您甚至可以使用花括号在lambda表达式中指定多个语句。 在下面的代码片段中显示了这一点。
(a, 10) =>
{
Console.WriteLine("This is an example of a lambda expression
with multiple statements");
return a.NoOfBooksAuthored >= 10;
}
[ 通过InfoWorld的App Dev Report新闻通讯了解软件开发中的热门话题 ] C#中的语句lambda 语句lambda使用与表达式lambdas相同的语法。 不同之处在于,lambda语句具有一个包含一个或多个语句的代码块,而不是在运算符的右侧具有表达式。
以下代码段说明了如何利用语句lambda在控制台窗口中显示1到9之间的偶数。
int[] integers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
foreach (int i in integers.Where(x =>
{
if (x % 2 == 0)
return true;
return false;
}
))
Console.WriteLine(i);
Lambda表达式是.NET和.NET Core的一项重要功能,它们提供了一种表示匿名方法的较短方法。 Lambda表达式可以具有零个参数或一个或多个。 您甚至可以将lambda表达式分配给Func,Action或Predicate委托。 在以后的文章中,我们将探讨lambda表达式的这些和其他功能。 我们还将探讨如何使用lambda表达式和LINQ以及异步lambda。
如何在C#中执行更多操作:
- 何时在C#中使用抽象类与接口
- 如何在C#中使用AutoMapper
- 如何在C#中使用Lambda表达式
- 如何在C#中与Action,Func和Predicate委托一起使用
- 如何在C#中与委托人一起工作
- 如何在C#中实现一个简单的记录器
- 如何在C#中使用属性
- 如何在C#中使用log4net
- 如何在C#中实现存储库设计模式
- 如何在C#中使用反射
- 如何在C#中使用FileSystemWatcher
- 如何在C#中执行延迟初始化
- 如何在C#中使用MSMQ
- 如何在C#中使用扩展方法
- 如何在C#中使用Lambda表达式
- 何时在C#中使用volatile关键字
- 如何在C#中使用yield关键字
- 如何在C#中实现多态
- 如何在C#中构建自己的任务计划程序
- 如何在C#中使用RabbitMQ
- 如何在C#中使用元组
- 探索C#中的虚拟和抽象方法
推荐阅读
- 热闹中的孤独
- 任时光绽放成六月繁花
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 我从来不做坏事
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 樱花雨
- 异地恋中,逐渐适应一个人到底意味着什么()