如果我有一个Dictionary<String,...>
是有可能使类似方法ContainsKey
不区分大小写?
这似乎有关,但我没有正确理解它: C#词典:通过声明来使钥匙不区分大小写
如果我有一个Dictionary<String,...>
是有可能使类似方法ContainsKey
不区分大小写?
这似乎有关,但我没有正确理解它: C#词典:通过声明来使钥匙不区分大小写
这似乎有关,但我没有正确理解它:C#词典:通过声明来使钥匙不区分大小写
这的确是相关的。 解决的办法是告诉字典示例中未使用标准的字符串比较方法(区分大小写),而是使用不区分大小写的。 这是使用进行适当的构造函数 :
var dict = new Dictionary<string, YourClass>(
StringComparer.InvariantCultureIgnoreCase);
构造函数需要一个IEqualityComparer
告诉字典如何对键进行比较。
StringComparer.InvariantCultureIgnoreCase
给你一个IEqualityComparer
这不区分大小写的方式比较字符串实例。
var myDic = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
myDic.Add("HeLlo", "hi");
if (myDic.ContainsKey("hello"))
Console.WriteLine(myDic["hello"]);
在有些情况下你的处理字典是从第三方或外部DLL拉几次机会。 使用LINQ
YourDictionary.Any(i => i.KeyName.ToLower().Contains("yourstring")))