Tag: hashtable

Hashtable- Rehashing

有人告诉我, .NET中的Hashtable使用rehashing来减少/避免冲突。 IE浏览器。 “Rehasing的工作方式如下:假设我们有一组哈希不同的函数,H1 … Hn,并且当从哈希表中插入或检索项目时,最初使用H1哈希函数。 如果这导致碰撞,则尝试使用H2,然后再尝试Hn,以避免在Hashtable中发生碰撞。“ 假设:我们有一个哈希表,其中n(其中n 1)时实现了这一点。 问题:当我们寻找(检索)任何元素时(如果使用不同的散列函数),有人可以解释一下CLR map如何键入哈希码? CLR如何跟踪(如果是)任何活动对象(哈希表)的哈希函数? 提前致谢

如何按字母顺序遍历Hashtable的键?

以递增的字母顺序遍历哈希表键的最简单方法是什么?

更好地使用HashTable或switch case

我不确定哪一个更好。 我需要解析输入字符串的每个字符并获取字符的替换字符串。 对于某些对象,允许使用所有字母数字字符,因此使用switch / case会导致大量代码并降低可读性和可维护性,但我可以使用静态方法。 使用HashTable也需要大量代码 使用静态方法: private static string EncodeChar(char c) { var symbols = string.Empty; switch (c) { case ‘0’: symbols = “Test”; break; case ‘1’: symbols = “Hello”; break; […] } symbols; } 使用HashTable: private static Hashtable table = CreateTable(); private static Hashtable CreateTable() { var table = new HashTable(); table.Add(‘0’,”Test”); table.Add(‘1’, […]

c#Hashtable按键排序

我有一个哈希表,其中键是字母,数值是数字。 如何根据键对哈希表进行排序? ExchangeA, 200 ExchangeV, 100 ExchangeC, 200 就像这样 ExchangeA, 200 ExchangeC, 200 ExchangeV, 100

如何在C#中将List 转换为Hashtable?

我有一个对象列表,每个对象包含Id,代码和描述。 我需要将此列表转换为Hashtable,使用Description作为键, Id作为值。 这样就可以将Hashtable序列化为JSON。 有没有办法从List 转换为Hashtable而不编写循环来遍历列表中的每个项目?

使用带有容差的IEqualityComparer GetHashCode

我正在尝试实现一个对日期比较具有容差的IEqualityComparer 。 我也研究了这个问题 。 问题是我无法使用变通方法,因为我在LINQ .GroupJoin()使用IEqualityComparer 。 我尝试了一些允许容忍的实现。 我可以让Equals()工作,因为我有两个对象,但我无法弄清楚如何实现GetHashCode() 。 我最好的尝试看起来像这样: public class ThingWithDateComparer : IEqualityComparer { private readonly int _daysToAdd; public ThingWithDateComparer(int daysToAdd) { _daysToAdd = daysToAdd; } public int GetHashCode(IThingWithDate obj) { unchecked { var hash = 17; hash = hash * 23 + obj.BirthDate.AddDays(_daysToAdd).GetHashCode(); return hash; } } public bool Equals(IThingWithDate x, […]