相关疑难解决方法(0)

哈希表如何工作?

我正在寻找哈希表如何工作的解释 - 用像我这样的傻瓜的简单英语!

例如,我知道它需要密钥,计算哈希值(我正在寻找解释如何)然后执行某种模数来计算它存储在存储值的数组中的位置,但这就是我的知识停止的地方.

任何人都可以澄清这个过程吗?

编辑:我没有具体询问如何计算哈希码,而是概述哈希表的工作原理.

hash hashtable modulo data-structures

477
推荐指数
11
解决办法
27万
查看次数

C#中字符串键类型的不区分大小写字典

如果我有一个Dictionary<String,...>是否有可能使方法ContainsKey不区分大小写?

这似乎是相关的,但我没有理解它:c#Dictionary:通过声明使Key不区分大小写

c# collections generic-collections

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

比较char忽略大小写的正确方法是什么?

我想知道比较两个字符的正确方法是什么,而忽略了适用于所有文化的案例.另外,Comparer<char>.Default在不忽略大小写的情况下测试两个字符的最佳方法是什么?这对代理对有用吗?

编辑:添加了示例IComparer<char>实现

如果这有助于任何人这是我决定使用的

public class CaseInsensitiveCharComparer : IComparer<char> {
    private readonly System.Globalization.CultureInfo ci;
    public CaseInsensitiveCharComparer(System.Globalization.CultureInfo ci) {
        this.ci = ci;
    }
    public CaseInsensitiveCharComparer()
        : this(System.Globalization.CultureInfo.CurrentCulture) { }
    public int Compare(char x, char y) {
        return Char.ToUpper(x, ci) - Char.ToUpper(y, ci);
    }
}

// Prints 3
Console.WriteLine("This is a test".CountChars('t', new CaseInsensitiveCharComparer()));
Run Code Online (Sandbox Code Playgroud)

.net c# string comparison char

47
推荐指数
2
解决办法
5万
查看次数