public void SingleSequenceStructLinq() { var sw = new Stopwatch(); sw.Start(); long sum = 0; for (var i = 0; i < 100000000; i++) { sum = new SingleSequence <int>(i).Aggregate(sum, (current, single) => current + single); } sw.Stop(); Console.WriteLine($"Elapsed {sw.ElapsedMilliseconds}"); Console.WriteLine($"Mops {100000.0 / sw.ElapsedMilliseconds * 1.0}"); }
public void SingleSequenceStructReusedForEach() { var sw = new Stopwatch(); sw.Start(); long sum = 0; var st = new SingleSequence <int>(1); for (var i = 0; i < 100000000; i++) { foreach (var single in st) { sum += single; } } sw.Stop(); Console.WriteLine($"Elapsed {sw.ElapsedMilliseconds}"); Console.WriteLine($"Mops {100000.0 / sw.ElapsedMilliseconds * 1.0}"); }
public SingleEnumerator(ref SingleSequence <T> parent) { _parent = parent; _couldMove = true; }