我有一个随机时间生成值的序列(实时股票市场价格)。我需要在一分钟内找到序列的最高和最低值。我知道您可以为此使用 Buffer 之类的东西。但是分钟窗口应该从 00 秒开始,到 59 秒结束。例如,一分钟应该从 8:00:00 开始,到 8:00:59 结束,第二分钟应该从 8:01:00 开始到 8:01:59。我们可以用 Rx 做到这一点吗?谢谢。蝰蛇
问问题
59 次
1 回答
0
我相信这会奏效:
var query =
source
.Publish(ss =>
ss
.GroupByUntil(
x => x.Timestamp.ToUnixTimeSeconds() / 60,
x => x.Value,
x => ss.Where(s => x.Key != s.Timestamp.ToUnixTimeSeconds() / 60))
.Select(gxs => gxs.ToArray().Select(xs => new
{
min = xs.Min(), max = xs.Max()
})));
于 2016-05-02T14:42:37.950 回答