Чтобы получить список чередующихся нулей и единиц, используйте Enumerable.Range
, а затем выполните по модулю результат:
var N = 10;
var res = Enumerable.Range(0, N).Select(x => x % 2);
Выход:
0 1 0 1 0 1 0 1 0 1
Если вы хотите повторить произвольную последовательность, вы должны использовать Enumerable.Repeat
, а затем объединить итераторы, используя SelectMany
:
var res = Enumerable.Repeat(new [] {1, 4, 3}, N).SelectMany(x => x);
Выход:
1 4 3 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3 1 4 3
Вместо массива (или списка) вы могли бы также поставить Enumerable.Range
или любой другой метод итератора:
var res = Enumerable.Repeat(Enumerable.Range(0,2), N).SelectMany(x => x);
, который снова создает список чередующихся 0 и 1.
Чтобы добавить один элемент в конце, используйте Concat
:
var res = Enumerable.Range(0, N).Select(x => x % 2).Concat(new [] {1});
Выход:
0 1 0 1 0 1 0 1 0 1 1
Так что в основном из Python в C #:
*
& rarr; Enumerable.Repeat
+
& rarr; Enumerable.Concat
[a,b,c]
& rarr; new [] {a,b,c}