如何从 IObservable 转换为到 IObservable

发布于 2024-10-05 19:48:53 字数 436 浏览 0 评论 0原文

我有一个返回接口 IObservable (在 silverlight 中)的方法,并希望将其转换为另一个 IObservable

那么我需要用什么来代替“CONVERT_SOME_HOW”

public IObservable<Bar> Get(IEnumerable<object> @params)
{

    IObservable<Foo> fooObservable = _resources.Get(@params);
    IObservable<Bar> barObservable = CONVERT_SOME_HOW(fooObservable);

    return barObservable;
}

I have a method which returns the interface IObservable<A> (in silverlight) and wish to transforms this into another IObservable<B>?

So what do I need to put in place of 'CONVERT_SOME_HOW'

public IObservable<Bar> Get(IEnumerable<object> @params)
{

    IObservable<Foo> fooObservable = _resources.Get(@params);
    IObservable<Bar> barObservable = CONVERT_SOME_HOW(fooObservable);

    return barObservable;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦在夏天 2024-10-12 19:48:53

就像在 LINQ to Objects 中一样,使用投影:(

var observableB = observableA.Select(a => new B(a));

显然,根据您的转换进行调整。)

这是假设我正确理解问题。目前还不太清楚“当执行对第一个观察者的订阅时”的含义。

Just as you would in LINQ to Objects, use a projection:

var observableB = observableA.Select(a => new B(a));

(Obviously, adjust according to your conversion.)

That's assuming I understand the question correctly. It's not quite clear what you mean by "when the subscription to the first observer is executed".

夜空下最亮的亮点 2024-10-12 19:48:53

正如 Jon 所建议的,如果您有从 AB 的转换,那么您可以使用 Select

但是,您也有可能从 A 转换为 IObservable,在这种情况下您可以使用 SelectMany:

var observableB = observableA.SelectMany(a => GetObservableB(a));

Just as Jon has suggested, if you have a conversion from A to B, then you can use Select.

However, there is also the possibility that you have a conversion from A to IObservable<B>, in that case you can use SelectMany:

var observableB = observableA.SelectMany(a => GetObservableB(a));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文