|
1
56
一个选项(对于Linq to对象)是创建自己的Linq运算符:
这使您能够只使用源序列的一次传递来执行投影,这始终是一个额外的好处(想象一下在一个大型日志文件上运行它)。
注意,它将投射一个长度序列
下面是一个如何使用它的示例:
请注意,这将包括一个ID的最终结果和下一个ID的第一个结果…您可能希望先按ID对序列进行分组。 |
|
|
2
15
使用索引获取上一个对象:
|
|
|
3
5
在C 4中,您可以使用zip方法一次处理两个项目。这样地:
|
|
|
4
4
修改jon skeet的回答,不跳过第一项:
一些关键区别…传递第三个bool参数以指示它是否是可枚举的第一个元素。我还切换了当前/以前参数的顺序。 下面是匹配的示例:
|
|
5
2
另一个模式开启 乔恩-斯基特 版本(感谢您的解决方案+1)。但这将返回可枚举的元组。
这是 不是 返回第一个,因为它是关于返回项目之间的中间值。 像这样使用它:
或
或 (就像乔恩的表演)
|
|
|
6
1
关于上面的felix ungman的文章,下面是一个示例,说明如何使用zip()来获得所需的数据:
基本上,您正在压缩同一列表的两个版本,但第一个版本(当前列表)从集合中的第二个元素开始,否则,同一个元素之间的差异将始终不同,使差异为零。 我希望这是有道理的, 戴夫 |