没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-08-14 11:20:58.000|阅读 921 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
LINQ,即 Language Integrated Query。很多人熟悉 SQL 语言,用它来操作数据库非常方便。现在在C#3.0中也可以使用相同的语法来操作各种数据,包括数组,文件,数据库等。由于 LINQ 的东西比较多,准备分三次讲,第一次主要介绍一下 LINQ,第二次主要介绍用 LINQ 操作数据库,第三次主要介绍用 LINQ 操作 XML,第四次主要介绍 LINQ 的一些函数应用。有时间在写一些关于 LINQ 的专题。
下面看一个例子,程序员就应该拿代码说话:
是不是对上面的 from,where,orderby 等单词很熟悉,我们可以很轻松的像查询数据库一样查询某些数组。其实上述表达式等价于下面这样的写法:
那么我们为什么能在数组上应用这些方法呢,本来数组上没有这些方法啊?回忆一下我们原来说过的内容,扩展方法,对,我们在这里看到扩展方法的用武之地了。而且我们也看到了 Lambda 表达式的应用使得语句更加简洁,易懂。这些扩展方法定义在哪里呢?我们可以在 System.LINQ 这个程序集里面看到这样的定义:
这里我们可以清晰的看到许多 this 关键字,这些正是扩展方法的标志。若果我们对 Lambda 表达式不是很熟悉的化,上面的 LINQ 语句还可以进一步转化成委托的形式。
有一个问题,我们会注意到 items 前面是用 var 做它的类型,那么有没有提出这样的疑问,这个 var到底是什么类型呢?我们仔细看一下那个 System.LINQ 程序集,就会发现扩转方法返回的是 IEnumerable<T>类型,一个泛型接口,没错var就是这个泛型接口。还有一个问题就是当 names 满足什么条件时,我们可以应用 LINQ 表达式进行查询。这一点还要从那个程序集上仔细观察。我们会发现有一个 source 参数,根据扩展方法的语法我们知道这个 source 参数就是调用了这个方法的对象。那么我们可以推断出这个对象要能转换成 IEnumerable<T>。那什么类型可以成功转换呢?很显然只要实现了 IEnumerable<T>这个泛型接口的类型都可以转换。譬如数组类型,List<T>,等等。当我们还可以自己定义类型只要实现了这个接口就可以用 LINQ 对这个类型进行操作
这一次只是简单的介绍一下 LINQ,以后我们在具体的讲一些应用,不过从介绍中我们看到 LINQ 的一些强大功能。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:csdn面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号