Итерация и возврат массива из n последовательных элементов

В Ruby есть each_cons на Enumerable . Работает это так

(1..5).each_cons(3) {|n| p n}

[1, 2, 3]
[2, 3, 4]
[3, 4, 5]

Я хотел бы сделать это на C #. Было бы неплохо с LINQ.

Следующее делает нечто подобное, но оно циклически повторяется от одного ко многим, а также жестко закодировано для возврата только двух элементов

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] });

Было бы хорошо, если бы его можно было создать как итератор по исходному массиву вместо для создания множества массивов.

6
задан Jonas Elfström 11 January 2011 в 17:19
поделиться