У меня есть объект, который я хочу использовать для поиска других объектов. Я буду использовать 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 будет самым простым, но, похоже, будет неэффективно индексировать словарь на основе ссылочных значений.
Если бы ключевой объект содержал одну уникальную строку, очевидным выбором было бы использовать ее, но наличие двух уникальных по комбинации строк усложняет задачу.