Mam tę prostą pętlę, którą chciałbym napisać deklaratywnie, używając LINQ.Konwertuj pętlę asynchroniczną do zapytania 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;
}
życzę czegoś, co wygląda jak:
return FooSources.Where(...).FirstOrDefault();
utknąłem, w szczególności na podejmowaniu LINQ i async
/await
współpracować.
Możesz użyć async w lambda też :) –
zainstalować resharper i możesz przekonwertować takie pętle na wyrażenie lambda –
@FabianBigler: Pokaż nam, jak to będzie wyglądać, w odpowiedzi. –