我正在尝试填写
Dictionary<long, Data>
。方法 GetData
返回数据是异步的,因此我使用以下代码获取字典:var myDictionary = entities
.GroupBy(e => e.EntityId)
.Select(e => e.First())
.ToDictionary(e => e.EntityId, async entity => await GetData(entity));
很遗憾,我的字典是Dictionary<long, Task<Data>>
类型的。
如何使用异步lambda表达式在ToDictionary中填充它?
GetData(entity).GetAwaiter().Result
,因为这只是强制所有异步操作同步执行。但是,在LINQ或PLINQ中都没有支持以正确方式异步构建集合(据我所知)。 - Jeroen Mostert.ToDictionaryAsync
,但是除了EF之外,这种方法并不存在(即使在EF中,它也不是完全通用的版本)。重复问题,尽管没有真正好的答案。 - Jeroen Mostert