Tôi có vòng lặp đơn giản mà tôi muốn viết khai báo, sử dụng LINQ.Chuyển đổi vòng lặp không đồng bộ thành truy vấn 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;
}
Tôi muốn kiếm cái gì đó trông giống như:
return FooSources.Where(...).FirstOrDefault();
Tôi đang mắc kẹt, đặc biệt là trên làm cho LINQ và async
/await
làm việc cùng nhau.
Bạn cũng có thể sử dụng async trong lambda :) –
cài đặt chia sẻ lại và bạn có thể chuyển đổi vòng lặp đó thành biểu thức lambda –
@FabianBigler: Hiển thị cho chúng tôi hình dạng trông như thế nào. –