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方式,会导致代码越来越复杂,不易阅读。

你可能感兴趣的:(LINQ)