我喜欢与xs.SelectMany(_ => ys)
非常相似的可观察运算符,只是在每个新输入值的不同之处,应该取消订阅延续/选择器函数的先前结果,制作独占消息总线而不是共享。
大理石:
xs S----o-----o----o------>
| | |
ys1 S-o-o-+o-o-+o----->
| | | |
ys2 | | S-oo-+--o--->
| | || |
ys3 | | || S---o-->
| | || |
result So-o---oo-----o-->
请注意,一旦xs的第二个值产生ys2,ys1就不会产生任何结果。结果应该取消订阅ys1。我希望这能说明我想要的东西:某种多路复用行为。这对于更改源(例如,GUI中的聚焦控件)触发事件非常有用。
有类似的东西吗?我可以为这种行为撰写已知的运算符吗?
答案 0 :(得分:2)
您想要切换http://msdn.microsoft.com/en-us/library/hh229197%28v=vs.103%29.aspx,如果您在Switch http://www.introtorx.com/content/v1.0.10621.0/12_CombiningSequences.html上阅读此部分,您会看到它具有相同的大理石。