MoreLinq是一个对Linq to object的扩展类库,它是一个开源项目(http://code.google.com/p/morelinq/source/browse 天朝已对google全力封禁,所以要翻墙),
它是对Linq to object的有力补充
国外有本书《Thinking in LINQ》专门花了一章的篇幅介绍了它
相对于Linq to object,它增加了多达21个运算符
Batch——把源序列分割成指定大小的子序列。
Consume——完全使用给定的序列。这个方法使用了即时执行,并且不会在执行的时候保存任何数据。(此方法只是简单地使用foreach遍历源序列,foreach里不包含任何代码)
EquiZip——返回元祖(tuple)的投影(projection),每个元祖包含了每个参数序列的第N个元素。
MaxBy——根据给定的投影返回给定的序列的最大元素。
Scan——对元素序列上执行扫描(包含前缀的求和)。
Zip——“返回元祖的投影每个元祖包含每个参数序列的第N个元素。”(Zip方法和EquiZip方法的区别在于当两个输入序列的长度不等时,前者会以元素较少的为准,剩余的元素将被忽略,而后者将会抛出异常)
它的开发者也是《C# in Depth》作者,下面使用NuGet来安装它。
首先要打开或建立你要使用MoreLinq库的项目,在VS的“工具”中找到“NuGet 程序包管理器”,打开程序包管理器控制台
输入如下命令:
PM> Install-Package morelinq -Version 1.1.0
安装成功后出现类似下面的字符
正在安装“morelinq 1.1.0”。
已成功安装“morelinq 1.1.0”。
正在将“morelinq 1.1.0”添加到 MoreLinqTest。
已成功将“morelinq 1.1.0”添加到 MoreLinqTest。
这样就可以在项目中使用MoreLinq了(上面的项目名称为MoreLinqTest)
关于NuGet 程序包管理器的使用,以后有时间专门写文章