readonly Action<string, Action> _measurement = ((desc, execute) =>
{
var sw = new Stopwatch();
sw.Start();
execute();
sw.Stop();
Console.WriteLine("{0}:{1}", desc, sw.Elapsed);
});
var rand = new Random();
var big = new List<string>();
Enumerable.Range(1, 10000000).ForEach(x =>
{
big.Add(rand.Next().ToString());
});
_measurement("Big Lookup", () =>
{
var lookup = big.ToLookup(x => x);
var item = lookup.Where(x => x.Key == "5000000").ToArray();
});
_measurement("Big GroupBy", () =>
{
var group = big.GroupBy(x => x);
var item = group.Where(x => x.Key == "5000000").ToArray();
});