private static async Task <List <Pokemon> > GetPokemonsAsync(int start, int count, TraceWriter log) { Stopwatch totalTimeStopwatch = new Stopwatch(); var pokemons = new List <Pokemon>(); totalTimeStopwatch.Start(); foreach (var index in Enumerable.Range(start, count)) { Stopwatch individualTimeStopwatch = new Stopwatch(); individualTimeStopwatch.Start(); var pokemon = await GetPokemonAsync(index); pokemon = FormatPokemonName(pokemon); log.Info($"{pokemon.Name} {index}/{count}"); pokemons.Add(pokemon); individualTimeStopwatch.Stop(); log.LogTime(individualTimeStopwatch.Elapsed); } totalTimeStopwatch.Stop(); log.LogTime(totalTimeStopwatch.Elapsed); return(pokemons); }