c#软件开发学习笔记--lambda表达式、数组排序

轻松应对 LINQ 查询:Lambda 表达式在 C# 中的高效应用 LINQ 是 C# 提供的一种查询机制,它支持通过查询表达式从集合中提取数据。LINQ 可以用于查询数组、列表、数据库、XML 文件等多种数据源。查询语法和方法语法。查询语法:类似 SQL 语句的语法,适用于大部分查询操作。方法语法:基于方法调用的语法,通常配合 Lambda 表达式使用,是最常见的一种方式。本文重点介绍方法语法和 Lambda 表达式的结合应用。Lambda 表达式与 LINQ 查询的结合,使得 C# 开发者能够以简洁、灵活的方式进行数据查询和处理。 阅读详情

c#软件开发学习笔记

一、lambda表达式

lambda表达式:本质是一个函数,作为另外一个函数参数进行使用,也可以称为是匿名函数(箭头函数)
表达式语法:(参数类型 a,参数类型 b,...)=>{}
单独写lambda表达式会报错,要么写在高阶函数里面 要么找一个变量接收,
lambda表达式如果找一个变量接收的话,这个变量是类型使用这三种类型接收
1 Func<> 接收有返回值的函数,参数 0~16 个
2 Predicate<> 接收有返回值为bool类型的函数,参数1个
3 Action<> 接收无返回值的函数,参数 0~16 个

1.Func<>

//Func<int,int,int> 参数类型  最后一个类型是返回值的类型
//F4 函数名
//(int a, int b) 参数类别 多个参数时候必须加()
//{函数体}
Func<int,int ,int >  F4   = (int a, int b) => { return a + b; };

//lambda可以像普通函数去调用
Console.WriteLine(F4(10, 20));

//简化写法
Func<int, int> F6 = a => a;

//把lambda表达式应用在高级函数中
Console.WriteLine(Array.Find(ages, v => v % 2 != 0)); //找奇数的第一个匹配到的元素

2.Predicate<>

//使用Predicate<>关键字接收返回值为bool类型的lambda表达式
Predicate<int> f3 = a => a % 2 == 0;
Console.WriteLine(f3(3));//false

3.Action<>

//使用Action关键字接收无返回值的lambda表达式
//定义一个字符串参数 无返回值的lambda表达式
// 如果一个参数可以把()不写
// 如果函数体只有一句可以把{}省掉
Action<string>  f2 = (a) => Console.WriteLine(a);
f2("hell world");

二、数组排序

1.冒泡排序

冒泡排序,Bubble Sort 一个简单且常用的排序算法。因最大或最小的元素会经过交换慢慢出现在数列顶端,好似元素冒出来一样,得名“冒泡排序”。
原理

  1. 比较相邻元素:从列表的第一个元素开始,比较相邻的两个元素
  2. 交换位置:如果前一个元素比后一个元素大(升序排序时),就交换它们的位置
  3. 重复遍历:对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对
  4. 最大元素沉底:每次完整遍历后,最大的元素会"冒泡"到列表的末尾
  5. 缩小范围:忽略已经排序好的末尾部分,重复上述过程
  6. 完成排序:当没有元素需要交换时,排序完成
public static void BubbleSort(int[] ints)
{
    bool isSwap;
    for (int i = 0; i < ints.Length; i++)
    {
        isSwap = false;
        for(int j = 0; j < ints.Length - 1 - i; j++)
        {
            if (ints[j] > ints[j + 1])
            {
                (ints[j], ints[j + 1]) = (ints[j + 1], ints[j]);
                isSwap = true;
            }
        }
        if (!isSwap)
            return;
    }
}

2.选择排序

选择排序在要排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换;在剩下的数当中找最小的与第二个位置的数交换,即顺序放在已排好序的数列的最后,如此循环,直到全部数据元素排完为止
原理

  1. 查找最小值:在未排序序列中找到最小元素
  2. 交换位置:将该最小元素与未排序序列的第一个元素交换位置
  3. 缩小范围:将排序范围向后移动一位,重复上述过程
  4. 完成排序:直到所有元素都排序完毕
public static void SelectSort(int[] ints) 
{
    for (int i = 0; i < ints.Length - 1; i++)
    {
        int minIndex = i;
        for (int j = i + 1; j < ints.Length; j++)
        {
            if (ints[minIndex] > ints[j])
                minIndex = j;
        }
        if(minIndex != i)
            (ints[minIndex], ints[i]) = (ints[i], ints[minIndex]);
    }
}
Lammps纳米压痕接触面积—Matlab接触面积计算(两种方法) Lammps纳米压痕接触面积计算 阅读详情

相关推荐

从封装到先进封装:一文讲透Chiplet、2.5D/3D堆叠与系统集成

封装是芯片产业链中连接硅片与电路板的桥梁,承担物理保护、电气连接、散热与机械支撑等核心任务。传统封装从DIP、QFP发展到BGA,通过提升引脚密度满足早期性能需求。随着摩尔定律放缓,单纯缩小晶体管尺寸难以为继,先进封装应运而生,其核心理念从“封装单颗芯片”转向“系统级高密度集成”。扇出型封装、2.5D硅中介层、3D堆叠、Chiplet和系统级封装等技术,通过微米级互连和垂直堆叠,大幅提升I/O密度与带宽,成为AI芯片、HBM存储、高性能计算等领域的关键支撑。本文梳理先进封装的技术演进、分层架构与工程难点,帮

weixin_29185167的博客 367

c#中Lambda表达式

在C#的语法中有一种比较特殊的写法,叫做Lambda表达式,这种表达式的写法在于你查询数据的时候直接是使用以下箭头的形式来表示查询语句的:=>。例如,我们要查找学生的List<Student>集合中班级编号为1001的所有学生数据,我们即可用Studentlist.Where(t=>t.ClassCode=‘1001’)语句来直接完成,无需再写繁琐的foreach语句或者for循环。5 查询班级编号为1001的班级下面的姓氏为【李】的同学的所有集合,并按照学生的出生日期从小到大排列。// 查找第一个偶数。

baidu_39458245的博客 3632

图像质量评估(9) -- 杂散光(Flare)的测量标准与实战解析

本文深入解析了杂散光(Flare)对图像质量的影响及其测量标准,包括ISO 9358和ISO 18844的核心方法。通过实战指南和优化策略,帮助读者掌握杂散光的测量与控制技术,提升光学系统性能。

sql99的博客 251

C# Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。 示例1 下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This i

博客 4万+

将Matlab程序打包成.exe独立可执行程序

将Matlab程序打包成.exe独立可执行程序,在未安装Matlab的电脑上也能运行Matlab程序。

简简单单的学习笔记,致力于帮助更多前进路上的朋友~ 5万+

手把手教你搞定CAC会议投稿:从LaTeX模板到PDF eXpress避坑全流程

本文详细解析CAC会议投稿全流程,重点介绍LaTeX模板调整、Turnitin查重技巧及PDF eXpress校验避坑指南。通过实战案例和代码示例,帮助研究者高效完成IEEE格式论文投稿,避免常见技术性失误,提升投稿成功率。

weixin_29969209的博客 397

C# Array(进阶)_Lambda表达式_冒泡排序_集合

C# 中的集合类(Collection)是专门用于数据存储和检索的类,类中提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。在剩下的数当中找最小的与第二个位置的数交换,即顺序放在已排好序的数列的最后,如此循环,直到全部数据元素排完为止。集合类的用途多种多样,例如可以动态的为元素分配内存、根据索引访问列表项等等,这些类创建 Object 类的对象集合,Object 类是 C# 中所有数据类型的基类。3.针对除最后一个元素外的所有元素重复以上的步骤。

2401_82410658的博客 1408

为什么devc++编译项目会失败?提示gcc无法正常启动...

根据你的描述,编译能正常进行时,只打开源文件并没有问题,问题主要出现在创建项目后编译失败,这通常与 Makefile 配置、环境变量、编译器路径设置等因素有关。你可以检查 Makefile 配置,验证 DevC++ 的编译器环境设置,或者尝试清理并重新配置项目。如果问题仍然存在,可以尝试重装 DevC++ 或重新配置工具链。希望如上措施及解决方案能够帮到有需要的你。

**My Coding Family** 1376

Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。 示例1 下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a La

王伯仙的博客 13万+

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

weixin_45735391的博客 3万+

SDR 和 DDR 的区别

SDR 和 DDR 的差别,最明显提现在传输速率和频率上。DDR SDRAM与SDRAM的基本结构是相似的,最根本的区别在于DDR 支持在一个时钟周期内传输两次数据,,SDR 只能传输一次数据。

串起点滴 1960

C# 数组Array.Sort()、List.Sort()排序使用方法

【对一维数组】 数据:int[] A = {16, 67, 12, 50, 8, 46, 4}; 整体升序:Array.Sort(A); 整体降序:先升序,再反转Array.Reverse(A); 局部升序:Array.Sort(A,2,4);//从索引为2的元素开始的4个元素进行升序 局部降序:Array.Reverse(A,2,3);//对索引为2的元素开始的3个元素进行反转,这是接着Array.Sort执行的 从左到右的图片分别是从整体升序到 的结果 【对二维数组】 数据: ...

enternalstar的博客 3万+

【人工智能】提示词工程:让大模型精准响应的核心技术,提示词的基础框架 以及 常见提示词框架及场景

编写提示词的基础原则包括:简单、明确、详细,提示词拥有零样本提示、少样本提示、分配角色、提示写作风格、限定输出格式等技巧。

奶爸的编程之路,也就一周冷个三天 1138

C# Lambda表达式详细总结

https://blog.youkuaiyun.com/qq_36456952/article/details/64126983   (一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用...

zam183的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# Lambda表达式总结篇

C# Lambda表达式详细总结 (一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。 示例1 下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a Lambda expression”字符串。 [csharp] view plain

铁蛋的博客 2888

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C#-Lambda 表达式

C# 中的lambda 表达式以上就是今天的内容了,简单介绍下Lambda表达式。

Bruce__taotao的博客 1342

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# 中的 Lambda 表达式详解

Lambda 表达式是 C# 中非常强大的特性,它使代码更加简洁、灵活,并且在 LINQ 和异步编程等场景中发挥着重要作用。通过合理地使用 lambda 表达式,可以提高代码的可读性和可维护性,同时也能够更方便地进行函数式编程。在实际开发中,我们应该根据具体的需求和场景,灵活地运用 lambda 表达式,以提高开发效率。

zxz2910847200的博客 3733

深入浅出:C#中的Lambda表达式与动态数组

1,lambda表达式: 可以让我们定义一个变量,接收一个函数,主要是作为另外一个函数的参观进行使用,具体体现变量和函数体之间使用,=>,其他编程语言称之为箭头函数,但C#中没有箭头函数2,如果一个函数仅在当前作用域进行使用,可以把函数定义在当前作用于进行//303,定义lambda表达式: 方法的组成: 参数列表、返回值、方法名,方法体//标准写法//可以通过变量名调用函数 304,Func<> 方法类型、函数类型//第一个类型 是参数1的类型//第二个类型 是参数2的类型。

2301_81657759的博客 1715

Lambda拉姆达表达式

(一)输入参数在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。示例1下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a Lambda e...

马毅轩的编程之路 2万+

C#实验6.3 练习Lambda表达式排序

定义Car类,练习Lambda表达式排序 (1)Car类中包含两个字段:name和price; (2)Car类中包含相应的属性、构造函数及ToString方法; (3)在Main方法中定义Car数组,并实例化该数组; (4)在Main方法中,使用OrderBy方法,按姓名排序输出Car数组所有元素。 (5)在Main方法中,使用OrderBy方法,先按姓名后按价格排序输出Car数组所有元素。 using System; using System.Collections.Generic; using Sy.

weixin_43308917的博客 1056

C# lambda表达式与匿名方法

文章目录匿名方法Lambda表达式实例实例 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 C#中的匿名方法是在C#2.0引入的,它终结了声明委托的唯一方法是使用命名方法的时代。在C#更高版本中,Lambda表达式取代了匿名方法,作为编写内联代码的首选方式。但是,匿名方法的信息同样也适用Lambda表达式,可以说Lambda表达式就是匿名方法演变过来的。匿名方法可以用来忽略参数列表,可以转化为具有各种签名的委托,而这对于Lambda表达式来说是不可能的。 匿名

优快云博客 1404

C# 使用 Array.Sort 方法对二维数组排序。

C# 使用 Array.Sort 方法对二维数组排序。前言代码 前言 刷题中遇到一个问题,就是要对二维数组。当然可以自己手写二维数组的排序算法,但是面对算法题,重点并在排序,为了省省排序的心思,一般会想到用 Array.Sort() 来对数组进行排序。可惜,我百度了半天都没找到,于是试了试,还是写出来了,下面贴出来。 代码 (杀鸡用宰牛刀式的文字布局,得好好反省反省了) // 泛型 是个很好的选择,也是我的习惯问题 // 使用了 lambda 语句; // 这里 x,y参数对应的就是需要比较的一维数组,那么

a46244934的博客 6409

C# —— 常用的lambada表达式 以及lambda表达式和数组结合使用

string[] xings = { "张", "王", "李", "赵", "刘", "尹", "关" };string[] names = { "狗蛋", "钢弹", "鸭蛋", "鸡蛋", "蛋蛋", "牛蛋", "洋蛋", "公明", "飞", "唯", "备" };

一个新人博客,愿多多支持。 1281

学懂C#编程:常用高级技术——学会Lambda表达式的应用(二)

学懂C#编程:常用高级技术——学会Lambda表达式的应用

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 661

C#学习笔记-匿名方法与lambda表达式(读自C#从入门到精通 第2版)

匿名方法 要将代码块传递为委托参数,创建匿名方法则是唯一的方法。匿名方法就是为了将代码块传递为委托参数,因此也有人将其称为匿名委托。使用C#的匿名方法可以使委托及事件的代码编写更加精简、高效。一般情况下,事件注册事件处理方法,需要首先定义这个方法,如果该方法仅用于订阅特定的事件,则可使用代码更加简明的匿名方法。 示例 委托与事件中的烧水示例,Heater类不变,去掉Alarm类和Display类,...

JeayNeverGiveUp的博客 420

在C#中Lambda表达式

Lambda表达式

2401_83696718的博客 748
上一篇: c#软件开发学习笔记--数组、数组的高阶函数
下一篇: c#软件开发学习笔记--集合
Z599817841
博客等级 码龄4年 12粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值