我有一个要用于查找其他对象的对象。我将使用Dictionary<TKey, TValue>()
。
密钥对象有两个唯一标识它的字符串,即KeyObj.Str1
和KeyObj.Str2
。
您建议我使用什么作为字典的键?
1:字符串的串联。
Dictionary<String, TValue>();
Key = KeyObj.Str1:KeyObj.Str2; ("somestring:anotherstring")
2:每个对象都有唯一的整数来标识吗?
Dictionary<int, TValue>();
KeyObj.ID = _nextID++;
Key = KeyObj.ID;
3:对对象的引用。
Dictionary<KeyObj, TValue>();
Key = KeyObj;
选项3是最简单的,但似乎无法根据参考值索引字典。
如果键对象包含一个唯一的字符串,则显而易见的选择是使用它,但是只有两个唯一组合的字符串会增加难度。
最佳答案
串联的字符串应该效果最好。
如果您知道它们的组合是唯一的,那么这就是您应该选择的-请记住,哈希码通常是唯一的,但并非总是如此。