[英]How to retrieve lifetime operations of a sequence generator using Rx?
当我收到有关序列更改的通知时,我需要使用Rx检索序列先前生成的所有对象以及新对象的方法。 我认为这种情况并不常见,因为大多数系统只需要未处理的条目,但是我的情况需要整个旧的和新的值集合才能起作用。
是否有可能以某种方式实现这一目标? 我找不到任何类似的示例,而且似乎没有方法可以做到这一点。
您可以为此使用Scan
扩展方法 。
IObservable<T> source = ...;
IObservable<List<T>> history = source
.Scan(new List<T>(), (list, item) => { list.Add(item); return list; });
如果source
发出令牌A
, B
, C
,
然后history
发出令牌[A]
, [AB]
, [A, B, C]
。
如果您不希望history
发出的所有值都是相同的List<T>
,则可以稍微修改对Scan
的调用:
IObservable<List<T>> history = source
.Scan(new List<T>(), (list, item) => list.Concat(new[]{ item }).ToList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.