c# 字典:通过声明实现键的大小写不敏感
c# 字典:通过声明实现键的大小写不敏感
我有一个`Dictionary
Dictionary_recordSet = new Dictionary ( StringComparer.InvariantCultureIgnoreCase);
\n这样非常好用。但是嵌套字典怎么办?像下面这样:\n
Dictionary> _customRecordSet = new Dictionary >();
\n在这种嵌套字典中,我该如何指定字符串比较器?
在C#中,Dictionary是一种常用的数据结构,它允许存储键值对,并通过键来访问值。然而,默认情况下,Dictionary的键是区分大小写的,这意味着如果使用不同大小写的键来访问值,将会得到不同的结果。
因此,有时候我们希望在Dictionary中使键对大小写不敏感。这个问题的出现是因为当我们使用Dictionary存储数据时,需要以不区分大小写的方式来比较键。
解决这个问题的方法是在创建Dictionary实例时,使用StringComparer.InvariantCultureIgnoreCase作为参数来指定键的比较方式。这样,无论键的大小写如何,都将被视为相等。
以下是解决方法的示例代码:
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(StringComparer.InvariantCultureIgnoreCase); _customRecordSet[int_key][guid] = obj; } }
通过使用StringComparer.InvariantCultureIgnoreCase,我们可以在声明Dictionary时使键对大小写不敏感,从而解决了问题。这样,无论键的大小写如何,都能正确地访问和存储对应的值。