如何正确地从select返回async


var abc= await homeFixtures.Select(async x =>
{
var home = _teamService.GetTeam(x.HomeId);                
return await home.GetSeName();
});

得到错误:";IEnumerable<任务>不包含"GetAwaiter"的定义,并且没有可访问的扩展方法"GetAwaite"接受IEnumerable<任务>'可以找到

awaitTask一起使用。Select返回一个任务列表。你需要使用Task.WhenAll来等待所有这些任务并检索它们的结果,例如:

var tasks= homeFixtures.Select(async x =>
{
var home = _teamService.GetTeam(x.HomeId);                
return await home.GetSeName();
});
var abc=await Task.WhenAll(tasks);

home.GetSeName()返回的结果在Select中没有使用,因此可以消除await,直接返回任务:

var tasks= homeFixtures.Select(x =>
{
var home = _teamService.GetTeam(x.HomeId);                
return home.GetSeName();
});
var abc=await Task.WhenAll(tasks);

最新更新