首页 > 编程语言 >C# lambda 表达式

C# lambda 表达式

时间:2023-03-07 13:26:07浏览次数:35  
标签:C# System int using lambda 表达式 Lambda

C# lambda 表达式

lambda函数是一个小的匿名函数。lambda函数可以接受任意数量的参数,但只能具有一个表达式。本文主要介绍C# lambda表达式。

 

1、C# lambda表达式

"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。可以将此表达式分配给委托类型。

例如,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
   delegate int Calc(int i);  
    class Program
    {
        static void Main(string[] args)
        {
         Calc myDelegate = x => x * x+100;  
         int j = myDelegate(5); 
         Console.WriteLine(j);
        }
    }
}

 

 

注意:

Lambda表达式Lambda表达式是由.NET 2.0演化而来的,也是LINQ的基础,熟练地掌握Lambda表达式能够快速地上手LINQ应用开发。

Lambda表达式在一定程度上就是匿名方法的另一种表现形式。

2、语法

简单的lambda表达式包含一个参数和一个表达式:

parameter => expression

要使用多个参数,需要将其括在括号中:

(parameter1, parameter2) -> expression

表达式是有限的。它们必须立即返回一个值,并且不能包含 变量,赋值或语句,例如,if或for。为了执行更复杂的操作,可以将代码块与花括号一起使用。如果lambda表达式需要返回一个值,则代码块需要有return语句返回值。

(parameter1, parameter2) -> { 代码 }

3、使用lambda表达式

lambda表达式通常作为参数传递给函数:

例如:

List<string>ForEach方法中,使用lamba表达式可打印输出列表中的每个元素:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
   delegate int Calc(int i);  
    class Program
    {
        static void Main(string[] args)
        {
          var colNames = new List<string> { "colE", "colL", "colO", "colN" };   
          colNames.ForEach((x) => Console.WriteLine(x));
        }
    }
}

 

 

要在方法中使用lambda表达式,该方法应具有一个带有单方法委托类型的参数。 调用接口的方法将运行lambda表达式:

例如,

创建一个将lambda表达式作为参数的方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
   delegate int Calc(int i);  
    class Program
    {
        public static int GetResult(Calc c,int i)
        {
          return c(i);
        }
        static void Main(string[] args)
        {
         Console.WriteLine(GetResult(x=>x*3+20,10));
        }
    }
}

标签:C#,System,int,using,lambda,表达式,Lambda
From: https://www.cnblogs.com/GaoUpUp/p/17187774.html

相关文章

  • C# 正则表达式(Regex)
    C#正则表达式(Regex) 正则表达式是形成搜索模式的一系列字符。正则表达式可用于检查字符串是否包含指定的搜索模式。也可以进行字符串的替换和提取。本文主要......
  • C# File文件处理 创建和写文件
    C#File文件处理创建和写文件在C#程序开发中,我们往往会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C#有......
  • C# File文件处理 相关方法
    C#File文件处理相关方法在C#程序开发中,我们往往会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C#有几种......
  • C# File文件处理 删除文件
    C#File文件处理删除文件 在C#程序开发中,我们往往会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C#有......
  • C# File文件处理 读文件
    C#File文件处理读文件在C#程序开发中,我们往往会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C#有几种创......
  • .NET(C#) 中的程序集
    .NET(C#)中的程序集 程序集构成了.NET应用程序的部署、版本控制、重用、激活范围和安全权限的基本单元。程序集是为协同工作而生成的类型和资源的集合,这些......
  • C# 特性标签(Attribute)
    C#特性标签(Attribute)公共语言运行时使你能够添加类似于关键字的描述性声明(称为特性),以便批注编程元素(如类型、字段、方法和属性)。.NET出于多种原因且为解决许......
  • C# 索引器
    C#索引器 索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只......
  • C# 反射(Reflection)
    C#反射(Reflection)反射提供描述程序集、模块和类型的对象(Type类型)。可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用......
  • C# 事件(event)
    C#事件(event) 事件是一种特殊的多播委托,仅可以从声明事件的类或结构中对其进行调用。类或对象可以通过事件向其他类或对象通知发生的相关事情。发送(或引发)事......