面对字典中的问题.数组是否可以成为价值的关键???
Dictionary<string[], int> di = new Dictionary<string[], int>();
di.Add(new string[]
{
"1","2"
}, 1);
di.Add(new string[]
{
"2","3"
}, 2);
MessageBox.Show(di[new string[] { "2", "3" }].ToString()); // Here KeyNotFoundException occurred.
Run Code Online (Sandbox Code Playgroud)
为什么例外?
默认情况下,只会比较数组的引用,因此您必须这样做
IEqualityComparer<string[]>
或Tuple<string, string>
as键代替(因为你只有两个字符串)这是一个类似问题的答案,展示了如何为Dictionary
- 构造函数创建自定义比较器.