Junior — Middle
Akými spôsobmi je možné sa vyhnúť obmedzeniam veľkosti alebo obmedzeniam pri používaní kľúča v slovníku?
sobes.tech AI
Odpoveď od AI
V C#, majú slovníky (Dictionary<TKey, TValue>) obmedzenia na typy kľúčov a ich veľkosť, napríklad kľúč musí byť hashovateľný a správne implementovať metódy GetHashCode a Equals.
Aby ste sa vyhli obmedzeniam veľkosti alebo typu kľúča, môžete:
- Použiť zložené kľúče, napríklad vytvoriť triedu alebo štruktúru, ktorá kombinuje viacero hodnôt, a pre ňu správne implementovať metódy
GetHashCodeaEquals. - Premeniť veľké alebo zložité kľúče na kompaktnejšie reprezentácie, napríklad serializáciou objektu do reťazca alebo použitím hashovacej funkcie.
- Použiť špecializované kolekcie alebo dátové štruktúry, ak štandardný slovník nie je vhodný.
Príklad zloženého kľúča:
struct CompositeKey
{
public int Id;
public string Name;
public override bool Equals(object obj) => obj is CompositeKey other && Id == other.Id && Name == other.Name;
public override int GetHashCode() => HashCode.Combine(Id, Name);
}
var dict = new Dictionary<CompositeKey, string>();
dict[new CompositeKey { Id = 1, Name = "Test" }] = "Value";