C# 哈希集中的哈希性能<;int>;对照列表<;int>;包含

C# 哈希集中的哈希性能<;int>;对照列表<;int>;包含,c#,performance,hash,hashset,C#,Performance,Hash,Hashset,我正在寻找整数列表与整数散列集之间的比较/性能注意事项。这就是T作为整数所讨论的内容 我将有多达几千个整数,我想知道,对于单个整数,它们是否包含在这个集合中 当然,这需要一个散列集,但我想知道散列在这里是否有用,因为它们一开始只是整数。首先对它们进行散列不会增加不必要的开销吗 或者换句话说:使用散列集是否有益,即使对于整数集也是如此?散列整数非常便宜,正如您在该方法的源代码中所看到的: 数字的散列就是数字本身。再便宜不过了。因此,没有理由担心开销。把你的数字放在一个哈希集中,享受计算复杂度的搜索

我正在寻找整数列表与整数散列集之间的比较/性能注意事项。这就是
T
作为整数所讨论的内容

我将有多达几千个整数,我想知道,对于单个整数,它们是否包含在这个集合中

当然,这需要一个散列集,但我想知道散列在这里是否有用,因为它们一开始只是整数。首先对它们进行散列不会增加不必要的开销吗


或者换句话说:使用散列集是否有益,即使对于整数集也是如此?

散列整数非常便宜,正如您在该方法的源代码中所看到的:


数字的散列就是数字本身。再便宜不过了。因此,没有理由担心开销。把你的数字放在一个
哈希集中,享受计算复杂度的搜索。

有一个简单但有效的经验法则:

  • 该集合主要用于添加和迭代,很少使用 搜索=>使用列表

  • 该集合大量用于研究=>Use HashSet


“这当然需要一个散列集,但我想知道散列在这里是否有益,因为它们只是一个整数”,这表明我们不了解这两者之间查找的区别。或者,从您链接的问题中似乎找到了您想要的答案。您可能需要检查@TheodorZouliasYeah的整数实现。我想这是一个有点症状的问题,这个问题实际上只是措辞不好,(我的不好),而不是真正关于代码的实际性能。这给了我我一直在寻找的安慰。是的,我知道,但我的问题来自这样一个事实,即哈希实际上是一个整数。
// The absolute value of the int contained.
public override int GetHashCode()
{
    return m_value;
}