public static void ExecuteMultipleTimesAndPrintSummaryToConsole(Action action, int numRuns) { int runNumber = 0; var runTimes = ExecuteMultipleTimesAndReturnTimeSpans(action, numRuns, () => Console.WriteLine(string.Format("Run {0} completed", ++runNumber))) .Select(x => x.TotalSeconds); var summary = new MultipleRunSummary { AverageRuntimeInSeconds = runTimes.Average(), MedianRuntimeInSeconds = runTimes.Median() }; Console.WriteLine("Action executed {0} times, average runtime in seconds: {1}, median runtime in seconds {2}", numRuns, summary.AverageRuntimeInSeconds, summary.MedianRuntimeInSeconds); }