我有一组可以使用多个键访问的对象,我应该使用什么结构在内存中表示这个?我需要的唯一操作是一个查找器,它会返回给出一个键的值。
例如:
key: {"a","aa","aaa"}, value {1}
key: {"b","bb","bbb"}, value {2}
key: {"c","cc","ccc"}, value {3}
我会像这样使用它:
MyStruct.Get["a"]; // return 1
MyStruct.Get["aa"]; // return 1
MyStruct.Get["bbb"]; // return 2
MyStruct.Get["d"]; // return null
答案 0 :(得分:2)
您应该使用Dictionary。 你可以像这样使用它:
Dictionary<string, int> myDict = new Dictionary<string, int>();
myDict.Add("a", 1);
myDict.Add("aa", 1);
myDict.Add("c", 3);
int result;
if (myDict.TryGetValue("a", out result)){
//do something with result
}
或者您可以像这样进行查找:
int result1 = myDict["a"]; //throws exception when the value is not present
使用自己的类作为TKey参数时要小心。如果这样做,则应覆盖.Equals和.GetHashCode方法。