• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
多莱特~梦未醒,再出发

行路难,行路难,多歧路,今安在。

长风破浪会有时,直挂云帆济沧海。

博客园    首页    新随笔       管理     

Linq(2)

解决的问题

1。阻抗失调:数据!=对象

2。 ORM

管道技术:是指通过标准输出输入流,将一系列的进程连接起来,这样一个进程的输出就直接传递给下一个进程的输入中。

 

Linq的核心技术

1。 序列:只所有实现了IEnumerable<T>接口的对象。

2。 迭代器:C#中的迭代器的行为非常特殊,每次只返回一个数据,这样可以节省内存,并可以立刻处理集合中的数据。

.net 迭代器是一种轻量级的协同程序,除非某个程序包括yeild return,否则都是子程序。

那么在Linq,操作链处理过程中是如何处理的呢?

 

性能问题

由于使用Linq的大多数操作都是要遍历集合,所以必须要注意性能,尽量只遍历一次。

所以推荐的做法是,要灵活使用Linq,必要的时候自定义查询操作,这样:

用linq的方法编写所有的代码,而将优化封装到自定义的查询操作符中。

Linq的代价

由于linq需要依赖一些额外的对象,导致linq的执行效率非常依赖于要执行的查询,导致效率下降。

 

Linq 还是 传统的Foreach

1。 Linq 使用声明式的方法,描述了所期望的结果,对应具体的实现过程不在意。

2。 传统的版本使用命令式方法,详细的给出了执行的完整步骤。

3.    linq更容易编写,更易阅读,更容易维护,但是不同的实现方式对性能影响更大,当然有可能好于传统的方式。

4。 foreach方式,会导致代码越来越复杂,不易阅读。

posted @ 2010-05-08 17:09  Young跑跑  阅读(186)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3