如果我有,Dictionary<String,...>是否可以制作ContainsKey不区分大小写的方法?
Dictionary<String,...>
ContainsKey
这似乎相关,但我没有正确理解:c# Dictionary: making the Key case-insensitive through declarations
确实有关系。解决方案是告诉字典实例不要使用标准的字符串比较方法(区分大小写),而是使用不区分大小写的方法。这是使用适当的构造函数完成的:
var dict = new Dictionary<string, YourClass>( StringComparer.InvariantCultureIgnoreCase);
构造函数需要一个IEqualityComparer告诉字典如何比较键的值。
IEqualityComparer
StringComparer.InvariantCultureIgnoreCase给你一个IEqualityComparer实例,它以不区分大小写的方式比较字符串。
StringComparer.InvariantCultureIgnoreCase