Имам обект, който искам да използвам, за да търся други обекти. Ще използвам 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 би бил най-лесният, но изглежда, че би било неефективно да се индексира речник въз основа на референтни стойности.
Ако ключовият обект съдържа един единствен уникален низ, очевидният избор би бил да го използвате, но наличието на два низа, които са уникални само в комбинация, го прави по-трудно.