Извините, если заголовок не очень ясен, я не смог придумать ничего лучше...
Я получаю пользовательский ввод в виде IObservable
, и я хотел бы преобразовать его в IObservable
, группируя символы каждый раз, когда пользователь перестает печатать более 1 секунды. Так, например, если ввод следующий:
h
e
l
l
o
(pause)
w
o
r
l
d
(pause)
!
(pause)
Я бы хотел, чтобы наблюдаемый вывод был:
['h', 'e', 'l', 'l', 'o']
['w', 'o', 'r', 'l', 'd']
['!']
Я подозреваю, что решение довольно простое, но я не могу найти правильный подход... Я пробовал использовать Buffer
, GroupByUntil
, Throttle
и некоторые другие, но безрезультатно.
Приветствуются любые идеи!
РЕДАКТИРОВАТЬ: У меня есть кое-что, что почти работает:
_input.Buffer(() => _input.Delay(TimeSpan.FromSeconds(1)))
.ObserveOnDispatcher()
.Subscribe(OnCompleteInput);
Но мне нужно сбрасывать задержку каждый раз, когда вводится новый символ...