mic*_*czy 6 c# linq dictionary async-await
我正在尝试填写Dictionary<long, Data>
。返回数据的方法GetData
是异步的,所以我使用以下代码来获取字典:
var myDictionary = entities
.GroupBy(e => e.EntityId)
.Select(e => e.First())
.ToDictionary(e => e.EntityId, async entity => await GetData(entity));
Run Code Online (Sandbox Code Playgroud)
不幸的是 myDictionary 是类型Dictionary<long, Task<Data>>
如何在ToDictionary中填写using async lambda?
尝试这个:
var myDictionary =
(await Task.WhenAll(entities
.GroupBy(e => e.EntityId)
.Select(e => e.First())
.Select(async e => new {e.EntityId, Data = await GetData(e)})))
.ToDictionary(e => e.EntityId, e => e.Data);
Run Code Online (Sandbox Code Playgroud)