In Ruby there is an each_cons on Enumerable. It works like this
(1..5).each_cons(3) {|n| p n}
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
I would like to do this in C#. LINQ would be nice.
The following does something similar but it loops one to many and it’s also hardcoded to return only two elements
var ints = new int[] { 1, 2, 3, 4, 5, 6, 7 };
var cons = ints.Select((o, i) =>
new int[]{ ints[i], i == ints.Length - 1 ? 0 : ints[i + 1] });
It would be nice if it could be created as an iterator over the original array instead of having to create a lot of arrays.
Try the following
This will return an
IEnumerable<IEnumerable<int>>with the specified values. You can add the.ToArrayexpression at any point to get it into an array if that’s the intent (can’t tell if that’s whatthe[]mean in ruby)