SequenceEqual如何在Reactive Extensions中工作

时间:2015-04-29 10:10:20

标签: c# .net reactive-programming

我很难弄清楚SequenceEqual在Reactive Extensions版本2.2.5中是如何工作的

以下是代码

var subject1 = new Subject<int>();
            var subject2 = new Subject<int>();

            IObservable<bool> sequenceEqual = subject1.SequenceEqual(subject2);

            subject1.OnNext(5);
            subject1.OnNext(3);

            subject2.OnNext(1);
            subject2.OnNext(4);

            //This will be notified if the two sequences completed
            sequenceEqual.Subscribe(b => Console.WriteLine("Two sequences are equal ? {0}", b));

            subject1.OnCompleted();
            subject2.OnCompleted();

我预计输出会&#34;两个序列相等?错误&#34; ,但结果是 True ,即使它们包含不同的元素。

Sequence Equal

我只是想知道结果是什么样的? SequenceEqual实际上做了什么?

1 个答案:

答案 0 :(得分:3)

使用SequenceEquals,它将从您订阅的点开始监控。因此,在OnNext调用之前订阅,您的订阅代码中会出现错误或使用ReplaySubjects。