using System.Linq.Expressions;
using System.Threading.Tasks;
public static void Main()
public static async Task GetLotsOfStuff()
int[] collection = {1,2,3};
var tasks = collection.Select(q => GetDetailAboutTheThing(q));
var things = await Task.WhenAll(tasks);
foreach(var thing in things)
Console.WriteLine(thing);
public static Task<int> GetDetailAboutTheThing(int i)
return Task.FromResult(i*2);