最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

当编程语言不再是最容易的部分——有关 Lambda + LINQ 之后的 C#

  • 2008-01-10
  • 本文字数:932 字

    阅读完需:约 3 分钟

对于很多已经成为资深的开发人员而言,C# 3.0 及其 Lambda + LINQ 的出现就好像晴朗的天空中从远处飘来的一片乌云。原因是,当我们致力于研究如何应付业务快速变化的同时,语言本身的灵活性却在空前提高,不断的变革。如果您对 COM 开发中的各种宏和 Inline 定义还记忆犹新的话,相信您也不会忘记那个时代看起来很“Cool”的与很平凡的代码之间的区别;现在 C# 3.0 又把这些翻出来,只不过这次变革的动力更多来自于如何在访问数据时动态提取强类型的需求。很多以往我们需要数十行代码完成的函数现在只要一行 Lambda 表达式就可以了,而且因为它执行的对象可以根据需要切换到不同的数据源,如:XML 数据、关系数据库,甚至 Google 和 Amazon 的 Web 服务。因此,是否掌握语法中这些新的特性将很大程度上关乎你团队的开发效率,起码是编码部分的效率,难点在于是否还有心思坐下来重新学习这个“熟悉的陌生人”了。比如:下面一段代码仅仅是对一个一维数组操作的对照测试组:

public class Test
{
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

public IEnumerable TestLambda()
{
return numbers.TakeWhile((n, index) => n >= index);
}

public IEnumerable TestOrdinaryRoute()
{
IList list = new List();
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] >= i)
list.Add(numbers[i]);
else
break;
}
return list;
}
}

当模式和迭代成为我们这个时代开发主旋律的时候,动态语言因为其灵活性快速膨胀至 Web 开发的方方面面,但动态语言是否有足够的力量的开发我们需要的 ERP、CRM 等 OLTP 应用呢?应该可以,不过我不太会用。对于很多用户而言,“能够早点完成工作按时下班就是最好的用户体验”。而 Lambda 只是一个开始,他刚好位于一个全能的通用语言之中,并令 C#本身在可以支持密集计算的同时,又可以根据外部类型的变化、根据外部信息对象的变化,主动地调整自己的计算;并且可以把这些动态变化的能力从业务对象一直传递到最前端的用户界面部分。上面的例子只是对一维数据的操作,但随着业务规则日趋复杂,我们经常面对的是,用关系数据库或 XML 数据库组织的具有层次关系的数据(比如:用户提单和提单明细间的关系);这时候在操作相对复杂结构对象的时候,Lambda 的简洁优势更加明显了。

2008-01-10 21:321002
用户头像

发布了 61 篇内容, 共 96213 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

最佳的18个JAVASCRIPT前端开发框架和库

2D3D前端可视化开发

web前端 Javascript框架 前端开发框架 webgl库 javascript库

前端二面高频react面试题集锦

夏天的味道123

前端 React

逃离同质化,OPPO折叠屏正在笃定远一点的未来

脑极体

OPPO 折叠屏

MegEngine 使用小技巧:使用 Netron 实现模型可视化

MegEngineBot

深度学习 开源 MegEngine Netron 模型可视化

预防DIP器件可焊性问题,看这篇就够了

华秋电子

网心科技以11.3%的市场份额跻身IDC中国边缘公有云市场前三

网心科技

边缘计算 IDC 边缘云 边缘云原生

设计模式第八讲:观察者模式和中介者模式详解

C++后台开发

数据结构 设计模式 后端开发 Linux服务器开发 C++开发

2023-02-23:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420P格式文件。

福大大架构师每日一题

golang ffmpeg 福大大

阿里云云通信风控系统的架构与实践

阿里云视频云

云计算 云通信

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

前端 React

如何实现文件高速传输,推荐镭速高速文件传输解决方案

镭速

用ChatGPT优化AI绘画提示词的探索

Baihai IDP

人工智能 AI AIGC ChatGPT

每日一题之请描述Vue组件渲染流程

bb_xiaxia1998

Vue 前端

【AAAI 2023】针对视频分类的知识迁移

Zilliz

计算机视觉

2023前端二面手写面试题总结

helloworld1024fd

JavaScript 前端

金融与科技融合发展,将技术转化成生产力是重中之重

镜舟科技

数据库 数据库·

大模型时代的异构计算平台

Baidu AICLOUD

大模型训练 异构计算

前端react面试题(边面边更)

beifeng1996

前端 React

百度前端一面高频react面试题指南

beifeng1996

前端 React

JS继承有哪些,你能否手写其中一两种呢?

helloworld1024fd

JavaScript 前端

高频js手写题之实现数组扁平化、深拷贝、总线模式

helloworld1024fd

JavaScript 前端

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue 前端

2023前端二面vue面试题

bb_xiaxia1998

Vue 前端

有哪些做的不错的国产化企业协同办公软件?14个企业协同软件对比

PingCode

团队管理 团队协作 团队协作工具

StarRocks携手零洞科技,助力碧桂园物业企业微信数字化项目

StarRocks

数据库 开源 互联网

ChatGPT热潮背后,金融行业大模型应用路在何方?——金融行业大模型应用探索

易观分析

金融 科技

人人能读懂redux原理剖析

夏天的味道123

前端 React

如何使用 Kubernetes 实现应用程序的弹性伸缩

API7.ai 技术团队

Prometheus api 网关 APISIX Serverless Kubernetes

React循环DOM时为什么需要添加key

beifeng1996

前端 React

前端常见手写面试题集锦

helloworld1024fd

JavaScript 前端

Python 基础练习题(三)

漫步桔田

当编程语言不再是最容易的部分——有关Lambda + LINQ之后的C#_.NET_王翔_InfoQ精选文章