4

我有一个像8, 7, 6, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 4. 结果应该显示的是0, 0.

是的,这很容易。但我不希望结果是0, 0,当输入仅为0, 0.

这里的问题是它应该只0在前一个值大于零时发布。

4

1 回答 1

4
IObservable<int> source = new[] { 8, 7, 6, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 4 }.ToObservable();
IObservable<int> edges = source.Zip(source.Skip(1), (f, s) => Tuple.Create(f, s))
    .Where(t => t.Item1 > 0 && t.Item2 == 0)
    .Select(t => t.Item2);
于 2013-08-14T19:49:14.920 回答