HashSetT
这是一组独特的项目,使用 O(1)
查找。
HashSet<int> validStoryPointValues = new HashSet<int>() { 1, 2, 3, 5, 8, 13, 21 };
bool containsEight = validStoryPointValues.Contains(8); // O(1)
通过比较,在 List 上执行 Contains
会产生较差的性能:
List<int> validStoryPointValues = new List<int>() { 1, 2, 3, 5, 8, 13, 21 };
bool containsEight = validStoryPointValues.Contains(8); // O(n)
HashSet.Contains
使用哈希表,因此无论集合中的项目数是多少,查找都非常快。