jaz*_*000 3 c# linq async-await .net-core
看来应该很简单,我有以下代码
var additionalInformation= response.AdditionalInformation.Select( async x => new AdditionalInformationItem
{
StatementCode = x?.StatementCode?.Value,
LimitDateTime = x?.LimitDateTime?.Item?.Value,
StatementTypeCode = x?.StatementTypeCode?.Value,
StatementDescription = x?.StatementDescription?.Value,
AdditionalInformationResult = await BuildAdditionalInformationPointers(x)
}).ToList();
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现的是额外的信息类型
List<AdditionalInformationItem>
Run Code Online (Sandbox Code Playgroud)
,我得到的是 List<Task<AdditionalInformationItem>>
谁能帮助我正确地重新陈述我的陈述?
您需要使用来展开任务,await Task.WhenAll(additionalInformation)
然后使用来访问实际结果additionalInformation[0].Result
。
所以像这样:
var additionalInformation= response.AdditionalInformation.Select( async x => new AdditionalInformationItem
{
StatementCode = x?.StatementCode?.Value,
LimitDateTime = x?.LimitDateTime?.Item?.Value,
StatementTypeCode = x?.StatementTypeCode?.Value,
StatementDescription = x?.StatementDescription?.Value,
AdditionalInformationResult = await BuildAdditionalInformationPointers(x)
});
await Task.WhenAll(additionalInformation);
//This will iterate the results so may not be the most efficient method if you have a lot of results
List<AdditionalInformationItem> unwrapped = additionalInformation.Select(s => s.Result).ToList();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
92 次 |
最近记录: |