Was passiert eigentlich bei der Verwendung von async / await in einer LINQ-Anweisung?

Das folgende Snippet wird kompiliert, aber ich würde erwarten, dass es auf das Ergebnis der Aufgabe wartet, anstatt mir ein zu gebenList<Task<T>>.

var foo = bars.Select(async bar => await Baz(bar)).ToList()

Wie erwähntHiermüssen Sie verwendenTask.WhenAll:

var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList();
await Task.WhenAll(tasks);

Aberein Kommentar weist darauf hin, dass dieasync undawait in derSelect() wird nicht gebraucht:

var tasks = foos.Select(foo => DoSomethingAsync(foo)).ToList();

Eine ähnliche FrageHier wo jemand versucht, eine asynchrone Methode innerhalb einesWhere().

Damitasync undawait In einer LINQ-Anweisung gibt es eine zulässige Syntax, aber tut sie überhaupt nichts oder hat sie eine bestimmte Verwendung?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage