public ThrottleFirstViewModel() { var timeSpan = TimeSpan.FromMilliseconds(2000); InputText = new ReactivePropertySlim <string>( initialValue: "", mode: ReactivePropertyMode.DistinctUntilChanged) .AddTo(CompositeDisposable); // 入力終了から4秒したらクリアする InputText .Sample(TimeSpan.FromMilliseconds(4000)) .Subscribe(_ => InputText.Value = "") .AddTo(CompositeDisposable); // 入力文字を1文字ずつ流す var inputChar = InputText .Select(x => x.Length > 0 ? x[^ 1] : default(char?))