private static IEnumerable<MethodInfo> GetSuitableMethods(IProject project)
        {
            var typesToExclude = new[] {typeof (Project), typeof (IProject), typeof (Object)};

            return from method in project.GetType().GetMethods()
                   where typesToExclude.None(t => t.Equals(method.DeclaringType))
                   where !method.IsSpecialName
                   select method;
        }
        static void Main()
        {
            string[] values = new[] { "One", "Two" };
            if (values.Contains("Three"))
            {
                Console.WriteLine("true");
            }
            else
            {
                Console.WriteLine("false");
            }

            // set up code
            int[] value = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            Console.WriteLine(Measure(value));

            value = null;
            bool re = value.None(i => i > 1000);

            #if !DEBUG
            var log = new long[30];
            Stopwatch stopwatch = new Stopwatch();
            for (int repeat = 0, i = Repeat; repeat < log.Length; repeat++, i = Repeat)
            {
                stopwatch.Restart();
                while (i-- > 0)
                {
                    Measure(value);
                }
                stopwatch.Stop();

                long ticks = stopwatch.ElapsedTicks;
                long milliseconds = stopwatch.ElapsedMilliseconds;
                long microseconds = stopwatch.ElapsedTicks * 1000000 / Stopwatch.Frequency;
                long nanoseconds = stopwatch.ElapsedTicks * 1000000000 / Stopwatch.Frequency;

                Console.WriteLine("{0} ticks, {1} milliseconds, {2} microseconds, {3} nanoseconds", ticks, milliseconds, microseconds, nanoseconds);
                log[repeat] = nanoseconds;
            }

            double median = log.OrderBy(ns => ns).Skip(log.Length / 2).Take(1).First() / Repeat;

            long medianMilliseconds = (long)(median / 1000000000);
            long medianMicroseconds = (long)(median / 1000000);
            long medianNanoseconds = (long)median;

            Console.WriteLine("\r\n\r\nMedian: {0} milliseconds, {1} microseconds, {2} nanoseconds", medianMilliseconds, medianMicroseconds, medianNanoseconds);
            #endif
            Console.ReadLine();
        }