У меня есть «значения» IObservable<T>
, которые возвращают T
элементы, которые должны быть последовательно объединены в массивы переменной длины, и у меня есть «control» IObservable<int>
, который сообщает мне, как долго должен быть следующий массив быть.
Удаление элемента, его повторение или вывод результатов из строя приведут к тому, что результаты не будут иметь смысла.
Это для робототехнического проекта с последовательным подключением, который я переписываю в Rx.NET.
IObservable<char> values = new [] {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' }.ToObservable();
IObservable<int> control = new [] { 1, 4, 2 }.ToObservable();
IObservable<char[]> result = control.SelectMany(length => values.Take(length).ToArray());
Я бы хотел увидеть что-то вроде этого:
values ----A--B--C--D--E--F--G--H-->
control --1-----4---------------2--->
result ---[A]---------[BCDE]--[FG]->
Но моя попытка до сих пор приводит к
-[A]-[AB]-[ABCD]->