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