using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Diagnostics; public class Program { public static void Main() { Executa(CriarCompras1); Executa(CriarCompras2); Executa(CriarCompras3); Executa(CriarCompras4); Executa(CriarCompras5); Executa(CriarCompras6); } public static void Teste() => WriteLine("Fazendo algo aqui"); private static void Executa(Func> metodo) { var stopwatch = new Stopwatch(); stopwatch.Start(); for (var i = 0; i < 1000; i++) metodo(50); stopwatch.Stop(); WriteLine($"Tempo passado: {stopwatch.ElapsedTicks}"); } private static List CriarCompras1(int numComprasParaGerar) => new List(Enumerable.Range(0, numComprasParaGerar).Select(i => new Compra())); private static List CriarCompras2(int numComprasParaGerar) => new int[numComprasParaGerar].Select(i => new Compra()).ToList(); private static List CriarCompras3(int numComprasParaGerar) => (from i in new int[numComprasParaGerar] select new Compra()).ToList(); private static List CriarCompras4(int numComprasParaGerar) => new List(Enumerable.Range(0, numComprasParaGerar).Select(i => new Compra())); private static List CriarCompras5(int numComprasParaGerar) { var lstCompras = new List(); CriarCompras(lstCompras, numComprasParaGerar); return lstCompras; } private static void CriarCompras(List lstCompras, int numComprasParaGerar) { lstCompras.Add(new Compra()); if(lstCompras.Count < numComprasParaGerar) CriarCompras(lstCompras, numComprasParaGerar); } private static List CriarCompras6(int numComprasParaGerar) { List lstCompras = new List(numComprasParaGerar); for (int i = 0; i < numComprasParaGerar; i++) lstCompras.Add(new Compra()); return lstCompras; } } public class Compra { public int Item = 0; } //https://pt.stackoverflow.com/a/89648/101