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
を連携させることに行き詰まっています。