/// <summary> /// Helper method that performs an Add test using HashSet, List and Dictionary /// </summary> private static void DoAddTest <T>(int testNumber, string description, List <T> inputs) { var hashsetResult = PerfTest.DoTest( inputs, () => new HashSet <T>(), (hs, i) => hs.Add(i), NumberOfTestRuns); var listResult = PerfTest.DoTest( inputs, () => new List <T>(), (l, i) => l.Add(i), NumberOfTestRuns); var dictResult = PerfTest.DoTest( inputs, () => new Dictionary <T, T>(), (dict, i) => dict.Add(i, i), NumberOfTestRuns); var dictResult2 = PerfTest.DoTest( inputs, () => new Dictionary <T, T>(), (dict, i) => dict[i] = i, NumberOfTestRuns); Console.WriteLine(@" Test {0} ({1}) Result: ------------------------------------------------ HashSet.Add : {2} List.Add : {3} Dictionary.Add : {4} Dictionary[n] = n : {5} ------------------------------------------------", testNumber, description, hashsetResult, listResult, dictResult, dictResult2); }
private static void DoRemoveTest <T>( int testNumber, string description, List <T> inputs, List <T> targets) { var hashsetResult = PerfTest.DoTest( targets, () => new HashSet <T>(inputs), (hs, t) => hs.Remove(t), NumberOfTestRuns); var listResult = PerfTest.DoTest( targets, () => new List <T>(inputs), (l, t) => l.Remove(t), NumberOfTestRuns); var dictResult = PerfTest.DoTest( targets, () => inputs.ToDictionary(i => i, i => i), (dict, t) => dict.Remove(t), NumberOfTestRuns); Console.WriteLine(@" Test {0} ({1}) Result: ------------------------------------------------ HashSet.Remove : {2} List.Remove : {3} Dictionary.Remove : {4} ------------------------------------------------", testNumber, description, hashsetResult, listResult, dictResult); }