12.3.1 用迭代器转换序列
到目前为止,我们只是用迭代器,从一段数据(如果有的话)生成序列。然而,迭代器通常用来以某种方式,进行序列的转换。作为一个简单的例子,这里有一个方法,把数字序列转换成平方序列:
IEnumerableSquares(IEnumerable numbers) {
foreach(int i in numbers)
yield return i...
分类:
其他好文 时间:
2015-01-22 18:20:34
阅读次数:
187
问题概述: 首先看下图,有客户表和客户负责人表关系是多对多,访问数据库使用的是EF所以这里我们开启了延迟加载,需求就是将每个客户的所有负责人逗号拼接显示在负责人这一栏位, 对你没看错需求就是这么简单如果是写sql也许我们会去用两个循环去做,问题是要用linq实现。这是我起初的写法:首先申明这个r.....
分类:
编程语言 时间:
2015-01-22 17:13:03
阅读次数:
206
12.3 处理序列
处理序列,可供选择的范围很广泛,包括从低级技术,能控制一切,但难以表达更复杂而通常的处理模式,到更高级技术,虽然不能表达我们所有可能想要的,但会更优雅。
在 C# 中,最低级的(除了直接实现 IEnumerable 接口)是使用迭代器块(iterator blocks),读取输入的序列,既可以使用 foreach,也可以使用枚举对象;而更高级的,我们可以使用预定义的(...
分类:
其他好文 时间:
2015-01-22 15:30:53
阅读次数:
123
12.1.3.1 写序列表达式
在 C# 中,当我们实现返回 IEnumerable、IEnumerator,或对应的非泛型方法时,可以自动使用迭代器。F# 序列表达式使用 seq 标识符显式标记,而且不必要使用方法体或函数体。正如其名字所暗示的,序列表达式是表达式的不同类型,我们可以在代码中的任意位置使用。清单 12.2 演示了使用此语法,创建简单的序列。
清单 12.2 介绍序...
分类:
其他好文 时间:
2015-01-20 15:45:07
阅读次数:
175
12.1.2 在 C# 中使用迭代器
当C# 2.0 最初引入迭代器时,最常见的用途是为了使自己集合的 IEnumerable 接口的实现更简单。在 C# 中使用的编程风格已经有了演变,现在迭代器能与其它函数式结构一起使用,进行各种数据处理操作。
迭代器可以用来生成任意序列。我们先从一个简单的示例开始,生成阶乘小于一百万的序列,并格式化成字符串形式。清单 12.1 显示了完整的源代码。
...
12.1.3 使用 F# 序列表达式
在 C# 中的迭代器非常方便(comfortable),能够在普通的 C# 方法中写复杂的代码(实现 IEnumerable/IEnumerator 接口的类型)。开发人员写的代码使用标准的C# 功能,比如环,唯一的改变只是我们可以使用一种新的语句,来做一些非标准的事情,这个新语句用 yield return 表示(或者 yield break 表示终...
分类:
编程语言 时间:
2015-01-19 10:57:06
阅读次数:
219
可以通过linq对现有的DataTable进行查询,并将结果拷贝至新的DataTable中例如:// Query the SalesOrderHeader table for orders placed // after August 8, 2001.IEnumerable query = f...
public class DatePartsConverter : JavaScriptConverter{ public override IEnumerable SupportedTypes { get { yield return typeof(DateTime); } } pu...
分类:
编程语言 时间:
2015-01-16 11:20:03
阅读次数:
325
大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象。两者单独查询时都不会出现什么问题,不过混合在一起时(一般是用关键字来join连接),要注意的地方就多着了。情形1:Linq to Objec...
分类:
其他好文 时间:
2015-01-15 14:13:56
阅读次数:
260
LINQ2Object的处理结果是把LINQ表达式映射成对应的委托,而LINQ2SQL则是保存了一系列的"步骤"---表达式树的处理方式.两者的区别简单的理解就是LINQ2Object将数据存放在内存中.而LINQ2SQL则是把数据存放在远程的服务器中..AsEnumerable() 和 .ToLi...
分类:
编程语言 时间:
2015-01-14 09:39:17
阅读次数:
222