我有一个Dictionary<TKey,TValue>
,我插入了大量数据。键是一个枚举。我一直得到这个例外:“具有相同密钥的项目”异常;带有枚举键的字典
具有相同密钥的项目已被添加。
但我不看到任何愚弄,但我怀疑我的一些枚举值相同。会导致重复键错误?我认为枚举是一种特殊类型,所以它的价值无关紧要。
这个例外不是很有帮助......它并没有告诉我哪个钥匙正在跳动。我正在使用一个初始化列表。
编辑:使用了一些正则表达式魔术到我的初始化列表转换成单独的.Add
电话。找到了密钥,但我仍然没有看到这个骗局......
只是问一个明显的问题:你能够调试它的视觉工作室吗?如果没有,可以在字典添加操作之前创建额外的检查,以查看密钥是否已经存在,并且添加更多有用的异常(如果存在)。 – lzcd 2012-02-21 05:12:21
@lzcd:嗯,我无法使用初始化列表。我把它分解后,它给了我一条线#。 – mpen 2012-02-21 05:15:39
枚举中有多少个值?数字值是否明确指定或保留默认值?它是[Flags]枚举吗?正如下面的Pavel所说,enum只是一个int(默认情况下)或幕后的另一个nunmeric数据类型,所以有时候不同的值(或Flags枚举中的组合)可以解析为相同的数字。 – 2012-02-21 05:17:03