c# Dictionary: making the Key case-insensitive through declarations
我有一本
问题是我的源数据中的
.NET框架的真正优点(和优点)是我可以做到:
1 2 | Dictionary<string, CustomClass> _recordSet = new Dictionary<string, CustomClass>( StringComparer.InvariantCultureIgnoreCase); |
而且效果很好。但是嵌套字典呢?如下所示:
1 2 | Dictionary<int, Dictionary<string, CustomClass>> _customRecordSet = new Dictionary<int, Dictionary<string, CustomClass>>(); |
如何在这样的嵌套字典上指定字符串比较器?
当您向外部字典添加元素时,您可能会创建嵌套字典的新实例,此时添加它,使用接收
更新日期:2017年3月8日:我在某个地方读到(我认为在"编写高性能.NET代码"中),当我只想忽略字符的情况时,
为了使用嵌套字典,必须对它们进行初始化。只需使用上面提到的代码。
基本上,您应该有这样的代码:
1 2 3 4 5 6 7 8 9 10 11 | public void insert(int int_key, string guid, CustomClass obj) { if (_customRecordSet.ContainsKey(int_key) _customRecordSet[int_key][guid] = obj; else { _customRecordSet[int_key] = new Dictionary<string, CustomClass> (StringComparer.InvariantCultureIgnoreCase); _customRecordSet[int_key][guid] = obj; } } |