using System.Diagnostics;
using System.Collections.Generic;
private static void Benchmark(Action act, int iterations)
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++)
Console.WriteLine((sw.ElapsedTicks).ToString());
public static void Main(string[] args)
var x = Enumerable.Range(0, 1000).ToList();
var y = Enumerable.Range(500, 1000).ToList();
var a = Enumerable.Range(0, 10).ToList();
var b = Enumerable.Range(5, 10).ToList();
Benchmark(() => { x.Concat(y).Distinct().ToList(); }, 100);
Benchmark(() => { x.Union(y).ToList(); }, 100);
Benchmark(() => { foreach (var i in y.Except(g)) g.Add(i); }, 100);
Benchmark(() => { b.Concat(a).Distinct().ToList(); }, 100);
Benchmark(() => { b.Union(a).ToList(); }, 100);
Benchmark(() => { foreach (var i in a.Except(h)) h.Add(i); }, 100);