原文地址:https://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html
概念
- 迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,它是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式。
- 迭代器模式使得你能够获取到序列中的所有元素而不用关心其类型是array,list,linked list或者是其他什么序列结构。这一点使得能够非常高效的构建数据处理通道(data pipeline)--即数据能够进入处理通道,进行一系列的变换,或者过滤,然后得到结果。事实上,这正是LINQ的核心模式。
- LINQ(Language Integrated Query)语言集成查询是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以操作内存数据的方式,查询数据库。(https://www.cnblogs.com/moonache/p/6552843.html#wiz_toc_1)
class Program
{
static void Main()
{
int[] numbers={2,12,5,15};
IEnumerable<int> lowNums=
from n in numbers
where n<10
select n;
foreach(var x in lowNums)
{
Console.WriteLine(x);
}
}
}
- 迭代器模式被IEnumerator和IEnumerable及其对应的泛型接口所封装。如果一个类实现了IEnumerable接口,那么就能够被迭代;调用GetEnumerator方法将返回IEnumerator接口的实现,它就是迭代器本身。
- 迭代器类似数据库中的游标,他是数据序列中的一个位置记录。迭代器只能向前移动,同一数据序列中可以有多个迭代器同时对数据进行操作。
- 协程其实就是一个IEnumerator(迭代器)
网友评论