使用 Task.WhenAll 和 Linq Select 新对象
using Task.WhenAll and Linq Select new object
我想知道在 linq 中构造匿名对象时有一种方法可以使用 Task.WhenAll
。我正在使用 .net 6。
香草盒看起来像这样,而且有效
var taskList = dataSource.Select(d => _client.GetAsync(d.Id));
var taskListResult = await Task.WhenAll(taskList);
不过,我正在尝试在 select 中构造一个对象,并用其他属性对其进行装饰。
var taskList = dataSource
.Select(d => new
{
ClientResult = _client.GetAsync(d.Id),
Id = d.Id,
OtherProperty = d.Other
});
var taskListResult = await Task.WhenAll(taskList);
有什么方法可以实现吗?
谢谢
在语句 lambda 中使用 async
-await
,这将使它成为 async
one:
var taskList = dataSource
.Select(async d => new
{
ClientResult = await _client.GetAsync(d.Id),
Id = d.Id,
OtherProperty = d.Other
});
var taskListResult = await Task.WhenAll(taskList);
我想知道在 linq 中构造匿名对象时有一种方法可以使用 Task.WhenAll
。我正在使用 .net 6。
香草盒看起来像这样,而且有效
var taskList = dataSource.Select(d => _client.GetAsync(d.Id));
var taskListResult = await Task.WhenAll(taskList);
不过,我正在尝试在 select 中构造一个对象,并用其他属性对其进行装饰。
var taskList = dataSource
.Select(d => new
{
ClientResult = _client.GetAsync(d.Id),
Id = d.Id,
OtherProperty = d.Other
});
var taskListResult = await Task.WhenAll(taskList);
有什么方法可以实现吗?
谢谢
在语句 lambda 中使用 async
-await
,这将使它成为 async
one:
var taskList = dataSource
.Select(async d => new
{
ClientResult = await _client.GetAsync(d.Id),
Id = d.Id,
OtherProperty = d.Other
});
var taskListResult = await Task.WhenAll(taskList);