首页  >  文章  >  后端开发  >  C# Lambda 表达式

C# Lambda 表达式

王林
王林原创
2024-09-03 15:27:19412浏览

C#中的Lambda表达式是一个匿名函数,它包含一个表达式或一堆语句,用于实现Lambda表达式的运算符是“=>”。 Lambda 表达式由两部分组成,其中左侧是输入,右侧是表达式。简单 Lambda 表达式接受一个参数并返回值,使用 lambda 表达式的最常见场景之一是列表。

语法

现在我们已经了解了 C# 中的 Lambda 表达式是什么,接下来让我们了解一下实现该表达式的标准语法。使用 Lambda 表达式,我们有两种类型的两种语法:

  • 表达式 Lambda: 这包含一个输入和一个表达式。

语法:

input => expression;
  • 语句 Lambda: 这仅包含输入和要执行的几个语句之一。

语法:

input => { statements };

开发者可以根据情况自由选择适合自己的需求。

Lambda 表达式在 C# 中如何工作?

当我们实现 Lambda 表达式时,我们有两个边和 => 的 Lambda 符号。之间。左侧接受任何类型的输入,而右侧接受表达式或语句。在C#中,Lambda表达式实现了一个功能,它允许我们的编译器根据变量所在的上下文推断变量类型。这个功能称为类型推断功能。我们可以将函数作为参数传递给方法调用。

每个 lambda 表达式都在内部映射到一个接口。现在,当我们使用 Lambda 表达式执行程序时,编译器会根据表达式的上下文确定要分配的接口,这一切都在编译时发生。这些表达式是匿名方法,意思是没有名称的方法,并使用函数式接口实现。

示例:现在让我们从 lambda 表达式的实现开始。对于我们的第一个程序,我们将以简单的形式实现 lambda 表达式,其中我们使用用户定义的类,而我们的第二个示例将非常简单,我们将在列表中找到奇数的第一次出现。那么,我们开始吧。

代码:

using System;
using System.Collections.Generic;
using System.Linq;
class City_Details {
public int cityCode {
get;
set;
}
public string cityName {
get;
set;
}
}
class det {
public static void Main(string[] args) {
List<City_Details> details = new List<City_Details>() {
new City_Details{ cityCode = 1, cityName = "Mumbai" },
new City_Details{ cityCode = 2, cityName = "Chennai" },
new City_Details{ cityCode = 3, cityName = "Pune" },
new City_Details{ cityCode = 4, cityName = "Ahmedabad" },
new City_Details{ cityCode = 5, cityName = "Delhi" }
};
var newDetails = details.OrderBy(x => x.cityName);
foreach(var value in newDetails) {
Console.WriteLine(value.cityCode + " " + value.cityName);
}
}
}

代码说明:  导入系统文件后,我们创建一个具有城市代码和城市名称两个属性的类。然后我们有我们的 det 类,其中包含 main 和其他函数。这里我们调用我们的第一个类并以列表的形式分配城市代码和名称。然后我们使用 OrderBy 按顺序列出详细信息列表,在这里我们实现 lambda 表达式。现在我们已经在按城市名称的列表中列出了数据,我们进入 foreach 循环并打印出接下来的每一行。如果执行时没有任何错误,此代码将打印列表,但不同的是,这意味着以 A 开头的 Ahmedab​​ad 将首先打印,而 Pune 将打印到底部。请参阅下面所附的输出屏幕截图:

C# Lambda 表达式

如您所见,我们的输出符合预期,按字母顺序排列。现在,继续我们的第二个示例,我们有一个简单的数字列表,其中包含奇数和偶数。那么让我们理解并执行我们的第二个程序。

代码:

using System;
using System.Collections.Generic;
class ExampleTwo {
static void Main() {
List<int> newList = new List<int>() { 10, 21, 31, 40 };
int oddNumber = newList.FindIndex(x => x % 2 != 0);
Console.WriteLine( "\n " + oddNumber);
}
}

代码说明:这是我们最简单的 Lambda 表达式实现示例,我们只使用列表和 Lambda 表达式。从我们的系统文件开始,然后是我们的类ExampleTwo 和main。然后我们初始化了整数列表,在我们的列表中,我们有四个数字。这是两个奇数和两个偶数。接下来,我们有整数变量,我们在其中使用 FindIndex,这是我们使用 Lambda 表达式的地方。在 FindIndex 中,我们有一个 x 作为输入,我们的输出将是一个不能被数字 2 整除的数字。经过这个数学运算,我们将得到奇数的索引。最后我们得到了输出语句,它将返回第一次出现奇数的索引号。请参阅下面所附的输出屏幕截图:

C# Lambda 表达式

正如我们在代码解释中所理解的,我们的输出将是奇数的索引号,而不是奇数本身。所以在这里,我们有 1,它的索引为 21。

优点

现在我们已经了解了 C# 中 Lambda 表达式的几乎所有内容,我们需要了解使用它的好处。主要优点之一是能够重用代码,这样我们就有更好的可读性。由于没有指定输入类型,它是最灵活的功能之一。

好处之一是能够为 lambda 表达式编写方法,无论我们想在哪里使用它。当我们只需要创建和使用一个方法一次时,这是最好的。这样我们就可以节省很多精力,不需要声明和编写单独的方法。

结论

任何编程语言中的 Lambda 表达式都可以发挥重要作用。在 C# 中,Lambda 表达式用作匿名表达式,其中左侧有一个输入,右侧有一个表达式或语句列表。 Lambda 表达式用“=>”表示。拥有任何类型输入的灵活性使其对开发人员非常有用。

以上是C# Lambda 表达式的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn