相关疑难解决方法(0)

为什么Dictionary优先于Hashtable?

在大多数编程语言中,字典比散列表更受欢迎.这背后的原因是什么?

.net c# vb.net data-structures

1348
推荐指数
17
解决办法
52万
查看次数

hashCode用于什么?它有独特之处吗?

我注意到getHashCode()WP7中的每个控件都有一个方法,它返回一个数字序列.我可以使用此哈希码来识别项目吗?例如,我想识别设备中的图片或歌曲,并将其检查到哪里.如果为特定项目提供的哈希码是唯一的,则可以这样做.

你能帮我解释一下hashCode是什么getHashCode()用的吗?

c# hashcode

119
推荐指数
4
解决办法
10万
查看次数

如何实现C#字符串的GetHashCode()?

我只是很好奇,因为我猜它会影响性能.它是否考虑完整的字符串?如果是,长字符串会很慢.如果它只考虑字符串的一部分,它将具有不良的性能(例如,如果它只考虑字符串的开头,如果HashSet主要包含具有相同的字符串,则它将具有不良性能.

.net c# string hash gethashcode

58
推荐指数
2
解决办法
3万
查看次数

.Net Framework中的字符串实习 - 有什么好处以及何时使用实习

我想知道特定于.Net框架的字符串实习的过程和内部.还想知道使用实习的好处以及我们应该使用字符串实习来提高性能的场景/情况.虽然我已经从Jeffery Richter的CLR书中学习实习,但我仍然感到困惑,并希望更详细地了解它.

[编辑]使用示例代码询问具体问题如下:

private void MethodA()
{
    string s = "String"; // line 1 - interned literal as explained in the answer        

    //s.intern(); // line 2 - what would happen in line 3 if we uncomment this line, will it make any difference?
}

private bool MethodB(string compareThis)
{
    if (compareThis == "String") // line 3 - will this line use interning (with and without uncommenting line 2 above)?
    {
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

.net c# string performance string-interning

40
推荐指数
5
解决办法
1万
查看次数

在Dictionary键中发生哈希冲突会发生什么?

我一直用c ++和java编写我的生活,但在C#上,我觉得这是一个完全不同的动物.

如果在c#中的Dictionary容器中发生哈希冲突,它会做什么?或者它甚至检测到碰撞?

在SDL中类似容器中发生冲突的情况下,有些会使键值部分将数据链接到键值部分,如链表,或者有些人会尝试找到不同的哈希方法.

[2010年6月4日上午10:56更新]

我试图为每个用户制作一个计数器.并且设置用户#没有定义,它可以增加或减少.我期待数据的大小超过1000.

所以,我想:

  • 快速访问最好不要O(n),重要的是由于要求我接近O(1),我需要确保我能够强制注销人员才能执行愚蠢的事情.
  • 动态增长和缩小.
  • 独特的数据.

Hashmap是我的解决方案,似乎Dictionary与c#中的hashmap相似...

c# hash collision-detection

24
推荐指数
3
解决办法
2万
查看次数

在字符串上调用GetHashCode()时获取重复值的概率

我想知道GetHashCode()string实例上调用方法时获取重复值的可能性.例如,根据这篇博文, blairbrainlessness在x86机器上具有相同的哈希码(1758039503).

c# hash-code-uniqueness hashcode hash-collision

22
推荐指数
4
解决办法
6078
查看次数

2个不同的字符串可以在C#中使用相同的哈希码吗?

可能重复:
hashCode用于什么?这是独特的吗?

我生成了很多字符串,然后我的问题是:

2个不同的字符串可以在C#中使用相同的哈希码吗?

通过哈希码我的意思是:

string s = "Hello";
s.GetHashCode();
Run Code Online (Sandbox Code Playgroud)

我的问题更多的是关于C#遵循生成字符串的算法,也许当所有其他哈希码已经生成或者可能不生成时会发生冲突.有可能有人有这个答案.

c# string

3
推荐指数
2
解决办法
4235
查看次数