我有一个要用于查找其他对象的对象。我将使用Dictionary<TKey, TValue>()

密钥对象有两个唯一标识它的字符串,即KeyObj.Str1KeyObj.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是最简单的,但似乎无法根据参考值索引字典。

如果键对象包含一个唯一的字符串,则显而易见的选择是使用它,但是只有两个唯一组合的字符串会增加难度。

最佳答案

串联的字符串应该效果最好。

如果您知道它们的组合是唯一的,那么这就是您应该选择的-请记住,哈希码通常是唯一的,但并非总是如此。

10-04 11:13