.NET方法演化史 从Delegate到Lambda再到LINQ

Halcon实战:5种边缘检测算子对比(Sobel、Roberts、Prewitt、Kirsch、Canny) 本文深入对比了Halcon中Sobel、Roberts、Prewitt、Kirsch和Canny五大边缘检测算子的实战表现与核心差异。通过工业图像实例与代码解析,提供了基于噪声水平、边缘连续性及实时性要求的场景化选型指南,帮助工程师精准选择最适合的算子以优化视觉检测流程。 阅读详情

  本文将介绍.NET方法演化史,从Delegate到Lambda再到LINQ。其中LINQ旨在成为,在 .NET 中,访问不同类型数据源的统一标准。希望对大家有所帮助。

  在最近比较新的项目中,已经开始在大量使用LINQtoSQL了。LINQ旨在成为,在.NET中,访问不同类型数据源的统一标准。我个人不赞同,也不希望如此。有些时候,一个庞大的杀毒软件,还不如一个几十K的专杀工具来的轻便。当然,LINQ的优势,在于对结构化数据的处理.

  于是就有了:

  LINQ to Object

  LINQ to XML

  LINQ to SQL

  这些目标数据源共同特性之一----较强的结构性。

  ........从LINQ追溯Lambda

  1. //LINQtoObject  
  2. IEnumerable filteredResult=from customer in customers 
  3. where customer.FirstName=="Donna"  
  4. selectcustomer; 

  上面是一个很简单的LINQtoObject.有的人就会说,这和我用一个foreach的工作量差不多啊!如果你这样想,就太小瞧他了.配合join..onorderbyletnestingwhere,效率的提高,那不是一点点了哈.:)

  具体的例子,不需要给出。点到即可。

  LINQ中的filter,是从LambdaExpression演化而来.

  上面的例子稍作变化,就可以看到我们亲切的Lambda了.

  1. Lambda在LINQ  
  2. //StatementLambdasinLINQ  
  3. IEnumerable filteredResult=(from customer in customers  
  4. select customer).Where(c=>c.FirstName.Equals("Donna")); 

  ........从Lambda追溯Delegate

  LambdaExpression是C#3.0中出现的神奇之物,它由C#2.0中的匿名函数演化而来。同时,也将匿名函数的作用,发挥到了极致.有了它,我们甚至都可以不用指定参数的类型。

  1. BubbleSort(items,  
  2. (firstItem,secondItem)=> 
  3. {  
  4. returnfirstItem}); 

  回想一下,在C#2.0中,我们是如何使用匿名函数的:

  1. BubbleSort(items,  
  2. delegate(intfirstItem,intsecondItem)  
  3. {  
  4. returnfirstItem}); 

  至于C#1.1中的代理,我不想回忆了,太痛苦:<

  不仅方法不能省,还要使用被代理函数的作为参数,构造代理对象.

 

 

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写 本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。 阅读详情

相关推荐

FinRL实战:5步搞定股票量化交易策略(附Python代码)

本文详细介绍了如何使用FinRL框架,通过5个步骤构建基于深度强化学习的股票量化交易策略。内容涵盖从环境搭建、数据获取与预处理,到交易环境构建、模型训练(如PPO算法),以及策略回测评估与优化的完整流程,并提供了可运行的Python代码示例,帮助读者快速入门AI驱动的量化交易。

weixin_29062865的博客 626

C#Linq与delegate(委托)

本文章是本人对Linq与委托的一些理解,不对的地方还望指正文章在说Linq之前会先说明委托,因为委托是组成Linq的一部分假如有以下代码 需要筛选分数>=60的对象 你会怎么做/// 测试i < 100;i++)});/// 名字set;/// 性别 0 男 1 女set;/// 分数set;在使用Linq的做法是委托是将方法包装成参数传递到其他地方执行的工具下面代码块中定义了一些委托与方法/// 定义无参,无返回值的 委托/// 定义1个参数,无返回值的 委托。

m0_48365841的博客 345

nmap、X-Scan漏洞扫描和Metasploit中用永恒之蓝漏洞入侵靶机并上传冰河

利用nmap、X-Scan扫描靶机的漏洞,在Metasploit中用扫描出的永恒之蓝漏洞入侵靶机,建立连接后上传冰河木马控制靶机,最后用冰河陷阱清除靶机的冰河木马,记一次完整的入侵控制实验。

m0_59302403的博客 4407

delegate的Lambda表达式

来源:http://www.cnblogs.com/yangecnu/archive/2012/09/26/Lambda_Expression_and_Anonymous_Method.html 一、Func<……>泛型委托类型 首先我们要选委托类型,在.NET 3.5中,提供了一系列泛型委托类型。在.NET3.5中有5个名为Func的泛型委托类型。每一个类型里...

aoaohu0894的博客 419

告别Qt Creator?手把手教你用VSCode+MinGW调试QT项目(附完整launch.json配置)

本文详细介绍了如何在VSCode中配置完整的QT开发环境,特别是针对使用MinGW编译器的用户。从环境搭建到调试配置,包括生成.pro文件、Makefile,以及配置task.json和launch.json文件,帮助开发者高效调试QT项目。

weixin_27180827的博客 186

2026.3.9:具身智能之GraspNet:Ubuntu24.04安装GraspNet

本文详细介绍了在Ubuntu24.04系统下安装GraspNet具身智能框架的全过程。主要包括:1) 创建Python3.9虚拟环境;2) 安装CUDA12.8和PyTorch2.7.0等基础依赖;3) 编译安装pointnet2、knn和graspnetAPI三个核心组件;4) 修改源码适配新版PyTorch;5) 下载预训练权重并成功运行demo。安装过程中特别提示了可能遇到的报错处理方案,最终在GPU环境下实现了GraspNet的部署运行。整个流程涵盖了从环境配置到项目运行的完整步骤,为具身智能研究者

拥抱具身智能,昇腾Ascend C 203

Linq 演变的过程(delegate => Lambda => Linq)

演变的过程(delegate => Lamb => Linq)1.  Funcstring,bool> filter = delegate(string s){return s.Length == 5;};  Funcstring,string> extract = delegate(string s){return s;}  Funcstring,string> project = delega

solo_123的专栏 1927

Pytest教程:Pytest插件原理

Pytest的插件系统是其强大功能的核心,它允许用户和开发者扩展和定制测试框架的行为。要深入理解Pytest插件的原理,我们需要从Pytest的架构和设计模式开始,然后深入到底层源码。

旦莫的博客 636

.net Lambda表达式与Linq (LINQ TO object)

Lambda表达式,是用来写匿名方法的。 在委托用得比较多,因为委托是传递方法的。 定义几个委托: public delegate void DoNoThing();//无参无返回值 public delegate void DoNoThingWithPara(sting name,int age);//有参无返回值 public delegate sting DoNo...

weixin_33756418的博客 198

小目标检测难题终结:YOLOv11 + 注意力机制,精度直接拉满

如果你在实操中遇到精度提升不明显或速度下降过多的问题,不妨尝试调整注意力模块的类型(如替换为CA)或插入层级,或针对性优化小目标的数据集增强策略。记住,小目标检测的核心是“特征强化与空间定位”,只要结合业务场景灵活调整注意力模块的组合,你也能让YOLOv11在小目标识别任务中脱颖而出。接下来,我们从模块选型到代码落地,一步步带你打造“小目标检测专精版”YOLOv11,真正帮你解决工业场景中(如安防、质检)的小目标识别痛点。在城市安防场景中,改进后的YOLOv11对远处行人、车辆(小目标)的识别准确率提升。

m0_64661770的博客 199

微信小程序 - 实现Java微信支付退款功能以及退款流程,微信小程序前端+java后端完整示例源码,微信小程序退款功能详解,小程序订单申请退款和退款回调方法、查询退款等(新版微信支付,详细示例代码)

微信小程序开发-微信支付退款功能以及退款回调方法,微信支付退款API详解,微信小程序支付V3(支付、退款)Java实现微信小程序开发 小程序支付开发-小程序退款功能,微信小程序小程序和公众号 退款功能教程(含申请退款和退款回调,退款回调地址在商户后台配置或者代码自定义)最新版微信小程序支付,退款问题,小程序支付和退款功能详解,小程序申请退款,小程序处理退款,微信小程序支付与退款java,微信小程序退款及回调,JAVA实现微信小程序支付退款功能,退款api调用报错,如何解决退款申请无响应,如何用实现小程序订单

🏆 前端领域优质创作者 4159

Linq+lambda表达式+delegate委托详解及代码示例

一、Linq 简介:提供一种统一且对称的方式,让程序员在广义的数据上得到和操作“数据”。简单点说,就是在C#后台像sql查询一样操作集合和数组,从而筛选出我们想要的结果。 c#定义的各种简化查询 代码示例: int[] scores1 = new int[] { 97, 92, 81, 60, 541, 1, 88, 81, 79 }; int[] scores2 = n...

Fish的博客 1323

Python入门实战:Python生物信息学编程基础

本文旨在为生物学背景的研究人员和对生物信息学感兴趣的程序员提供一个全面的Python生物信息学编程入门指南。我们将从Python基础知识开始,逐步深入到生物信息学特定的工具和技术,最终达到能够独立开发生物信息学分析程序的水平。Python编程基础生物信息学常用数据结构和算法DNA和蛋白质序列分析基因组数据处理生物信息学数据可视化Biopython库的使用实际项目案例背景介绍:概述文章目的、范围和预期读者核心概念与联系:介绍Python和生物信息学的基本概念。

AI架构师小马 1510

C#总结三linq

linq学习总结 LINQ查询语法: ①方法语法:扩展方法 + lambda表达式;  ②声明式的查询语法类似于SQL查询方式。  PS:什么是扩展方法?扩展方法就是向现有的类型添加一些方法,使得该类型在功能上有所扩展!扩展方法可以简化以继承实现的方法扩展,并且在不知道原有基类的内部构造时,将十分有利。  a.方法语法(传输链): IEnumerabl&lt;T&gt;query=源集合.W...

真谛 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linq 演变的过程(delegate => Lamb => Linq)

 演变的过程(delegate => Lamb => Linq)1.Funcstring,bool> filter = delegate(string s){                            return s.Length == 5;};Funcstring,string> extract = delegate(string s){                      

Simplicity is more complicated than you think 819

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 294

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

微软技术周报 11-02~11-09:VS Code 混装 Claude 与 Codex、EF Core 11 静默改行为、.NET 11 倒计时

11 月 6 日,Power Platform 通过消息中心通知管理员,Copilot Studio、Power Automate 和 Power Apps 里所有跑在 Anthropic Claude、xAI Grok 以及旧版 GPT 上的 prompt,12 月 2 日自动迁移到 GPT-6 系列,档位价格不变,模型选择收窄到一条产品线。效果是这样的:让 Claude 评审一个 Copilot chat 写出的方案,或者把同样的任务交给 Codex,两边并排跑在同一个会话里。更要紧的是下周的时间线。

海盗Sharp的博客 391

11-01-演进-.NET GC发展史

.NET GC发展史映射硬件演进:从单核STW到多核并发,再到区域化细粒度回收。历经分代管理、ServerGC、BackgroundGC、LOH自动压缩、POH隔离、DATC自适应线程数及Region-based管理等关键革新,代码量从5000行增至4万+,复杂度指数上升。每一步优化均在暂停时间、吞吐量与资源开销间权衡,体现“实用主义”哲学。核心启示:GC演进由硬件驱动,方向明确——更短暂停、更高效率,但代价是工程复杂性持续攀升。

设计 AI 玩游戏🎮 352

.NET 10 的性能提升

你不需要重写代码去用Span<T>,不需要手工池化对象,甚至不需要调整 GC 配置。JIT 编译器变得更“聪明”了,它会在编译时替你完成一些过去需要手动干预的优化。但与此同时,.NET 10 也引入了一个默认开启的 GC 行为变化,它在某些场景下会。这篇文章想讲清楚:哪些性能是你“自动”拿到的,哪些是需要你主动审视和取舍的。

qq_41019429的博客 334

在 .NET 10 中使用 Keycloak.Admin.Sdk 管理 Keycloak:从基础接入到功能开关

面向 .NET 10 / Native AOT 的 Keycloak Admin REST API 客户端,当前仅支持 Keycloak 26.8.1。主包引用 Microsoft.Extensions.Http 10.0.14 和 Microsoft.Extensions.Http.Resilience 10.11.0,使用源生成 JSON 元数据,默认关闭反射序列化。仓库固定 .NET SDK 10.0.403。

ChaITSimpleLove的博客 361

.NET 11 - 尝试一下Blazor中的新特性SupplyParameterFromTempData

时光匆匆,.NET Conf 2026大会将会在2026年11月份举办(11/10-11/13),到时微软将会发布.NET11,这是一个STS版本(Standard Term Support), 微软提供两年支持。当前.NET 11已经处于RC3版本(Release Candidate 3),很多新特性已经被发布出来了。

limingdinghao的博客 215

.NET 性能优化:先找瓶颈,再谈技巧

NET 性能优化没有“一招鲜”。Span<T>ValueTaskstackalloc这些工具在特定场景下确实很强,但它们解决的是微观层面的分配问题。如果你的应用瓶颈在数据库查询或者线程池阻塞,用再多Span<T>也救不回来。先测量,找到热路径,再针对性修改,改完再测量验证。跳过第一步的优化,大概率是在给编译器添乱。

qq_41019429的博客 363

.NET 可观测性选型:Metrics、ActivitySource、EventSource 到底该用哪个

很多人把Meter当成"新版 EventSource",把当成"新版 DiagnosticSource",然后在生产环境里发现:指标查不到、链路断了、开销还不小。这三个 API 解决的是三个不同维度的问题,混用一定会踩坑。

dotnethello的博客 162

在.NET WinForms中创建SQLite数据库

本文介绍在WinForms项目中使用SQLite的完整流程:通过NuGet安装System.Data.SQLite.Core包,将数据库文件置于程序目录下,利用CREATE TABLE IF NOT EXISTS实现自动建库建表;通过封装GetConnection()方法管理连接,初始化时调用Init()创建表结构;后续通过参数化SQL实现增删改查操作,支持数据绑定、登录验证等场景,确保安全高效。

2301_80809484的博客 283

FFmpeg × C# 实战:从命令行原理到 .NET 工程化落地

本文系统讲解 FFmpeg 的核心概念(容器/编码/流/滤镜/时间基),并给出 C# 对接的五条技术路线对比。重点实现一个可落地的 FFmpegRunner 封装,解决管道死锁、结构化进度解析、取消超时、二进制分发与参数注入五大工程问题;随后覆盖转码、裁剪、合并、抽帧、限体积压缩、水印、硬件加速六大高频场景,并附安全清单与排错速查表。

李赛赛的专栏 561

【WPF】兼容.net 4.8 相机控制

老项目兼容性问题:.NET 4.8 WinForms 可调用相机程序但界面卡住,.NET 8 可正常挂载句柄。最终通过创建空壳用户控件+自定义无边框窗口(FloatingPanelHost)实现界面悬浮绑定,利用 SetWindowPos 精确对齐屏幕坐标,确保跨进程窗口在 WPF 中正确显示,且随主窗口移动、缩放、隐藏同步,解决句柄挂载难题。

qq_37516758的博客 241
上一篇: LINQ to SQL之Step by Step及新手问题小结
下一篇: 理解lambda在linq中的应用
GoodShot
博客等级 码龄22年 968粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值