gpt4 book ai didi

c# - 将 LINQ 与异步混合(从种子获取有效负载)

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:21 25 4
gpt4 key购买 nike

我有一个种子收藏

var seeds = new [] {1, 2, 3, 4};

我想从每个种子运行一个异步方法,用种子执行一些计算:

async Task<int> Calculation(int seed);

我的目标是执行这样的选择:

var results = from seed in seeds
let calculation = await Calculation(seed)
select new { seed, calculation };

不幸的是,使用 LINQ 不允许使用此语法。

如何使“结果”变量同时包含种子和计算?

(我将不胜感激任何答案,但特别是如果它使用 System.Reactive 的 Observable)

最佳答案

这是一个 Rx 解决方案:

var seeds = new [] {1, 2, 3, 4};
var results = Observable.ToObservable(seeds)
.SelectMany(async i => new { seed = i, calculation = await Calculation(i)})
.ToEnumerable();

关于c# - 将 LINQ 与异步混合(从种子获取有效负载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com