【发布时间】:2013-06-01 06:03:35
【问题描述】:
我想使用 LINQ 以声明方式编写这个简单的循环。
async Task<Foo> GetFooAsync(string fooId, CancellationToken cancellationToken = default(CancellationToken))
{
foreach (var source in FooSources)
{
var result = await source.GetFooAsync(fooId, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
if (result != null)
{
return result;
}
}
return null;
}
我想要的东西看起来像:
return FooSources.Where(...).FirstOrDefault();
我被卡住了,尤其是让 LINQ 和 async/await 一起工作。
【问题讨论】:
-
你也可以在 lambda 中使用异步 :)
-
安装 resharper,您可以将此类循环转换为 lambda 表达式
-
@FabianBigler:在答案中向我们展示那会是什么样子。
标签: c# linq async-await