Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何转换IEnumerable<;任务<;T>&燃气轮机;至可观察<;T>;_C#_.net_Linq_.net 4.0_System.reactive - Fatal编程技术网

C# 如何转换IEnumerable<;任务<;T>&燃气轮机;至可观察<;T>;

C# 如何转换IEnumerable<;任务<;T>&燃气轮机;至可观察<;T>;,c#,.net,linq,.net-4.0,system.reactive,C#,.net,Linq,.net 4.0,System.reactive,是否有将IEnumerable转换为IObservable的内置方法。顺序不重要,只是我得到了东西,尽管最好是在它们完成的时候 如果它还不存在,那么有什么好的方法来实现它呢?我相信你想要的可能是可观察的。Start() 然后,您可以将.Subscribe(callbackMethod)附加到末尾,并在需要时指定回调。我相信这会起作用 tasks.Select(t => Observable.FromAsync(() => t)) .Merge(); 每个任务都会将其结果以

是否有将IEnumerable转换为IObservable的内置方法。顺序不重要,只是我得到了东西,尽管最好是在它们完成的时候


如果它还不存在,那么有什么好的方法来实现它呢?

我相信你想要的可能是
可观察的。Start()


然后,您可以将
.Subscribe(callbackMethod)
附加到末尾,并在需要时指定回调。

我相信这会起作用

tasks.Select(t => Observable.FromAsync(() => t))
     .Merge();

每个任务都会将其结果以其完成的顺序发送到可观察序列。您可以订阅序列,并通过这种方式对结果执行任何操作。

您可以通过以下方式执行:

var query = tasks.ToObservable().SelectMany(task => task.ToObservable());
或者,像这样:

var query =
    from t in tasks.ToObservable()
    from i in t.ToObservable()
    select i;

从Rx 2.0开始,有一种更简单的方法:

var query = tasks.ToObservable().Merge();