C# IObservable-忽略先前的结果

C# IObservable-忽略先前的结果,c#,.net,system.reactive,C#,.net,System.reactive,我有一个IObservable,它可以实现为BehaviorSubject、ReplaySubject或类似的东西 在下面的场景中,我不希望订阅服务器拾取最后一个缓存的值,而是希望它拾取下一个要通过的值。有什么想法吗 var subject = new BehaviorSubject(1); subject.OnNext(2); subject.Subscribe(x => Console.WriteLine(x)); subject.OnNext(3); 注意,我要打印的数字是3。

我有一个IObservable,它可以实现为BehaviorSubject、ReplaySubject或类似的东西

在下面的场景中,我不希望订阅服务器拾取最后一个缓存的值,而是希望它拾取下一个要通过的值。有什么想法吗

var subject = new BehaviorSubject(1);
subject.OnNext(2);

subject.Subscribe(x => Console.WriteLine(x));

subject.OnNext(3);

注意,我要打印的数字是3。。。我猜我需要在“subject.Subscribe”之间放置一个被动扩展方法,以获得一个新的可观察对象或其他东西。

在您的特定代码片段中,您可以只使用一个普通的subject并获得您想要的。或者,对于一个通用的cold Observable,您可能需要
someSubject.Publish().RefCount()

在您的特定代码片段中,您可以使用一个常规主题并获得所需的内容。或者,对于一个通用的cold Observable,您可能需要
someSubject.Publish().RefCount()

这对您有用吗

var subject = new BehaviorSubject<int>(1);

subject.OnNext(2);

var co = subject.Publish();

co.Subscribe(x => Console.WriteLine(x));

subject.OnNext(3);

co.Connect();
var主体=新行为主体(1);
主题.OnNext(2);
var co=subject.Publish();
co.Subscribe(x=>Console.WriteLine(x));
主题.OnNext(3);
co.Connect();

这对你有用吗

var subject = new BehaviorSubject<int>(1);

subject.OnNext(2);

var co = subject.Publish();

co.Subscribe(x => Console.WriteLine(x));

subject.OnNext(3);

co.Connect();
var主体=新行为主体(1);
主题.OnNext(2);
var co=subject.Publish();
co.Subscribe(x=>Console.WriteLine(x));
主题.OnNext(3);
co.Connect();

这应该满足您的要求:

var subject = new BehaviorSubject(1);
subject.OnNext(2);

subject
       .Skip(1) // 
       .Subscribe(x => Console.WriteLine(x));

subject.OnNext(3);

这应该满足您的要求:

var subject = new BehaviorSubject(1);
subject.OnNext(2);

subject
       .Skip(1) // 
       .Subscribe(x => Console.WriteLine(x));

subject.OnNext(3);

这个例子非常简单,问题是如果我被提供了一个恰好是行为主体的I=可观察到的,该怎么办。。。这就是我要保护的。@vdh_ant然后Skip(1)是你的朋友。这个例子很简单,问题是如果我被提供了一个恰好是行为主体的I=Observable。。。这就是我要保护的。@vdh_ant然后Skip(1)是你的朋友。那么你想得到热的或冷的观测值,让它们都表现得像热的一样吗?或者这只是你想忽略的最后一个结果?所以你想得到热的或冷的观测值,让它们都像热的一样工作?或者这只是你想忽略的最后一个结果?