【发布时间】:2011-05-26 13:43:00
【问题描述】:
var nums = new[]{ 1, 2, 3, 4, 5, 6, 7};
var pairs = /* some linq magic here*/ ;
=> 对 = { {1, 2}, {3, 4}, {5, 6}, {7, 0} }
pairs 的元素应该是两个元素的列表,或者是一些具有两个字段的匿名类的实例,例如 new {First = 1, Second = 2}。
【问题讨论】:
-
完全重复自己提出的问题stackoverflow.com/questions/3575925/…
-
@Jani 不,不是。这要求等效于 Python(或 Ruby)的 Zip() 方法 -> 需要两个列表并生成一个元组列表。这个问题是关于对单个列表进行分区的。
-
一个非常相似的答案——滑动窗口得到
{{1,2},{2,3},{3,4}...——应该很容易适应在这里:stackoverflow.com/questions/577590/… -
@Jani 其实我也错了,这个问题与 Zip() 方法无关,但仍然是另一个问题。
-
@Richard 使用自定义迭代器,而不是 Linq 表达式。我承认这可能是最干净的方法。
标签: c# linq linq-to-objects aggregate slice