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

C#—lambda表达式

时间:2024-08-22 23:52:36浏览次数:10  
标签:int C# funName v1 v2 表达式 lambda

在一些数组的方法,有些方法需要传递一个方法进行计算,但是这个方法可能只需要使用一次,将他封装到

类中会比较麻烦且没必要,这时候就可以使用lambda表达式了。lambda表达式可以很方便的创建一个方法 创建方式 lambda可以使用两种方式来创建

// 表达式lambda,会自动返回表达式的执行结果,只能写一句表达式
// (输入参数) => 表达式
Func<int, int, bool> funName = (int v1, int v2) => v1 == v2;
Console.WriteLine(funName(1, 2)); // false
funName(1, 1); // true
// 语句lambda,不会自动返回结果,需要使用return返回结果
Func<int, int, bool> funName = (int v1, int v2) => {
return v1 == v2;
}
// 可以省略表达式中的参数类型
Func<int, int, bool> funName = (v1, v2) => v1 == v2;
Func<int, int, bool> funName = (v1, v2) => {
return v1 == v2;
}
输入参数
// 如果没有参数,可以只写一个 ()
Func<bool> funName = () => true;
// 如果只有一个参数,可以省略小括号
Func<int, bool> funName = (v) => v >= 18;
当作参数的lambda表达式 有些方法需要传递一个方法作为参数,这种时候就可以使用lambda表达式创建一个方法进行传递
int[] a = {1,2,3};
// 方法的写法
Array.Find(a, FindTwo);
public bool FindTwo(int x)
{
return x >= 2;
}
// lambda表达式写法
Array.Find(a, x => x >= 2);
Array.Find(a, x => {
return x >= 2;
});

标签:int,C#,funName,v1,v2,表达式,lambda
From: https://blog.csdn.net/2401_84642440/article/details/141405339

相关文章

  • C#—Dictionary字典类
    特点:  必须包含名空间System.Collection.Generic  Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)  键必须是唯一的,而值不需要唯一的  字典长度是不固定的随着元素增减而改变  键和值都可以是任何类型(比如:string,int,自定义......
  • Scratch编程环境的暗色模式:探索可访问性的边界
    标题:Scratch编程环境的暗色模式:探索可访问性的边界Scratch,这个广受欢迎的图形化编程平台,由麻省理工学院媒体实验室开发,一直致力于为用户提供友好且易于访问的编程体验。随着用户对编程环境个性化需求的增长,Scratch的编程环境是否支持暗模式或可访问性选项,成为了编程教育领......
  • Scratch的诞生:开启编程世界的大门
    标题:Scratch的诞生:开启编程世界的大门Scratch,这款全球数百万儿童和青少年的编程启蒙工具,自诞生之日起就以其独特的图形化编程界面和强大的社区支持,引领着编程教育的潮流。本文将详细探讨Scratch的起源,它如何从一个教育项目成长为全球性的编程学习平台,并提供一些基础的Scrat......
  • SciTech-BigDataAIML-LLM-PE(Positional Encoding)位置编码: Absolute(绝对)Position
    SciTech-BigDataAIML-LLMPE(PositionalEncoding)位置编码:1Absolute(绝对)Position2Relative(相对)Position3Rotate(旋转)Position......
  • C++ 链表
    1.前言链表:不仅存储 当前元素的数据,还存储着 元素排列顺序2. 正题2.1如何存储节点?我们可以使用结构体 数组来存储 链表节点structNode{intval;//可以是string或其它复杂的类型intnxt;}node[N];Tip:下标顺序不是单链表顺序 val代表 元......
  • c++一些面试题目
    摘自:https://www.cnblogs.com/lidabo/p/3284921.html1、Whatisachievedbyprefixingthe'static'keywordtoafile-levelfunctionorfile-levelvariabledeclaration? 使用static关键字修饰文件级的函数和变量起到什么作用? key:对变量来说,不允许文件外的程序访问;对......
  • C# WebSocket Fleck 源码解读
    最近在维护公司旧项目,偶然发现使用Fleck实现的WebSocket主动推送功能,(由于前端页面关闭时WebSocketServer中执行了多次OnClose事件回调并且打印了大量的关闭日志,),后来我特地看了源码,这里做一些分享github: https://github.com/statianzo/Fleck 在源码中,作者在Samples项目中......
  • C:每日一题:双指针法的使用
    前言:思虑再三,觉得如果有时间每日一题还是可以更新一下的。题目难度:基础解题方法:双指针法一、题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。二、题目分析本题目标:将给定的整数数组中......
  • C++模板的细节改进
    emsp;emsp;C++11改进了编译器的解析规则,尽可能的将多个右尖括号(>)解析称模板参数结束符,方便我们编写模板相关的代码。1.模板的右尖括号emsp;emsp;在C++98/03的泛型编程中,模板实例化有一个很繁琐的地方,那就是连续两个右尖括号(>>)会被变异器解释称右移操作符,而不是模板参数表的结束......
  • Oracle dataguard 搭建 oracle 11g ADG
    文章目录一、系统环境检查二、参数调整三、搭建ADG1、主库操作1、主库开启归档模式,此步骤需要重启数据库--5主库打开forcelogging--6主库修改DG相关参数--7修改之后验证:--8、主库添加standbyredologfile(根据MAA最佳实践,我们建议只为备用重做日志组,每......