C# 在基于接收计数的聚合中,重置计数高于最大时间间隔 无时间限制的基于计数的筛选 如何引入不活动重置?
C# 在基于接收计数的聚合中,重置计数高于最大时间间隔 无时间限制的基于计数的筛选 如何引入不活动重置?,c#,.net,linq,system.reactive,C#,.net,Linq,System.reactive,但是,如何引入超时TimeSpan tooLong,以便当两个值之间的间隔超过此最大值时,计数将从零重新开始?我想这就是您想要的 var longGap = source.Throttle(tooLong); var filtered = source .Window(() => { return longGap; }) // Gives a window between every longGap .Select(io => io.Buffer(maxItems).Whe
但是,如何引入超时
TimeSpan tooLong
,以便当两个值之间的间隔超过此最大值时,计数将从零重新开始?我想这就是您想要的
var longGap = source.Throttle(tooLong);
var filtered = source
.Window(() => { return longGap; }) // Gives a window between every longGap
.Select(io => io.Buffer(maxItems).Where(l => l.Count == maxItems))
.Switch(); // Flattens the IObservable<IObservable<IList>> to IObservable<IList>
var longGap=source.Throttle(tooLong);
过滤变量=源
.Window(()=>{return longGap;})//在每个longGap之间提供一个窗口
.Select(io=>io.Buffer(maxItems)。其中(l=>l.Count==maxItems))
.Switch();//将IObservable展平为IObservable
如果右侧不表示表达式的返回类型,则不应使用var。@sweaver2112我不同意您的说法。关于这一点,没有硬性规定(风格指南或其他)。@AndersonImes:滥用var会降低代码的可读性,并增加下一个家伙的理解时间-你不同意吗?@Swaver2112 for Rx我认为该类型不会真正为你提供太多信息、过滤器、位置、油门等。。。尽管语义发生了完全的变化,但它们都保持相同的类型。@sweaver2112:当然,但它有自己的位置。例如,如果执行返回匿名类型的表达式。知道myStuff.Select(thing=>new{Name=thing.Name,Color=thing.Color})
属于IEnumerablegood问题、有趣的主题、图像。。。唯一缺少的是一个徒手画的圆圈。
var longGap = source.Throttle(tooLong);
var filtered = source
.Window(() => { return longGap; }) // Gives a window between every longGap
.Select(io => io.Buffer(maxItems).Where(l => l.Count == maxItems))
.Switch(); // Flattens the IObservable<IObservable<IList>> to IObservable<IList>