В Ruby есть each_cons
на Enumerable. Он работает как этотИтерационные и возвратные массивы последовательных n элементов
(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] });
Было бы хорошо, если бы он мог быть создан в качестве итератора над исходного массива, вместо того, для создания множества массивов.
+1 Я использую заявления, как это все время –
приятно, и я не» t действительно нужно делать это по неупорядоченным диапазонам/массивам. Не сейчас. –
Awesome for 'int'; не подходит для общих «n элементов». – Jay