using System; using System.Linq; using System.Collections.Generic; using System.Diagnostics; public class Test { public static void Main() { var sw = new Stopwatch(); int many = 10000000; var manyDoubles = new List(many); var range = Enumerable.Range(1, many).Select(i => (double)i); var orderFirst = manyDoubles.OrderBy(d => d).Distinct(); sw.Start(); manyDoubles.AddRange(orderFirst); sw.Stop(); Console.WriteLine("Time for first orderby then distinct: {0}", sw.Elapsed.ToString()); manyDoubles = new List(many); var distinctFirst = manyDoubles.Distinct().OrderBy(d => d); sw.Reset(); sw.Start(); manyDoubles.AddRange(distinctFirst); sw.Stop(); Console.WriteLine("Time for first distinct then orderby: {0}", sw.Elapsed.ToString()); } }