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