using System.Collections.Generic;
using System.Diagnostics;
public static void Main(string[] args) {
var tempo = new Stopwatch();
foreach (int fib in Fibonacci().Take(50)) {
Console.Write(fib + ", ");
Console.WriteLine("Executou em {0}ms ticks", tempo.ElapsedTicks);
foreach (int fib in FibonacciGenerator().Take(50)) {
Console.Write(fib + ", ");
Console.WriteLine("Com yield executou em {0}ms ticks", tempo.ElapsedTicks);
static IEnumerable<int> Fibonacci() {
var fibs = new List<int>();
for (int i = 0, anterior = -1, atual = 1; i < 1000; i++) {
int novo = anterior + atual;
static IEnumerable<int> FibonacciGenerator() {
for (int i = 0, anterior = -1, atual = 1; i < 1000; i++) {
int novo = anterior + atual;