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...
void OnClick()
{
//StartCoroutine(LoadLevel());
StartCoroutine(LoadFrompersister());
}
IEnumerator LoadLevel()
{
string url = "file://" + Application.dataPath + "/2.Android.unity3d";
Debug.Log(url);
...
分类:
编程语言 时间:
2015-01-18 17:13:18
阅读次数:
313
12.1 生成序列
生成序列有几种方法,先来看一下我们的选择,直接的方法是实现IEnumerator 接口,提供 Current 属性,和 MoveNext方法,将枚举数对象移动到下一个元素。这要求显式创建有可变状态的对象,很明显违反了函数式风格。通常的做法是隐藏可变性,提供更具声明式的方法,表达生成序列的内容,这类似于在前一章使用的延迟值。显式使用可变状态(例如,实现缓存),看起来不是...
分类:
其他好文 时间:
2015-01-18 11:54:45
阅读次数:
173
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
今天没有太多的言语,只有代码,扩展方法多得太多,不能一一列完,书中一些,看多了也就会使用了。 1 //Enumerable.Range 返回起始到结束范围,是一个Enumrable类型 2 //Range方法并不会真的构造含有适当数字的列表,它只是在恰当的时间生成那些数,"just in tim.....
分类:
编程语言 时间:
2015-01-13 00:03:07
阅读次数:
247
LINQ to XML 轴定义:创建XML树或将XML文档加载到XML树之后,可以进行查询,从而查找元素并检索它们的值。 两类轴方法:-一些轴就是XELement和XDocument类中返回IEnumerable(T)集合的方法。-另一些轴方法是Extensions类中的扩展方法。实现为扩展方法的轴...
分类:
其他好文 时间:
2015-01-09 00:14:35
阅读次数:
400