Junior — Middle
Kā izvairīties no izmēra ierobežojuma vai ierobežojuma, izmantojot atslēgu vārdnīcā?
sobes.tech AI
Atbilde no AI
C# valodā vārdnīcas (Dictionary<TKey, TValue>) ir ierobežojumi uz atslēgu tipu un to izmēru, piemēram, atslēga ir jāsalaužama un jāīsteno pareizi GetHashCode un Equals metodes.
Lai izvairītos no izmēra vai tipa ierobežojumiem, jūs varat:
- Izmantot sarežģītus atslēgas, piemēram, izveidot klasi vai struktūru, kas apvieno vairākas vērtības, un pareizi īsteno
GetHashCodeunEquals. - Pārvērst lielas vai sarežģītas atslēgas kompaktākās reprezentācijās, piemēram, serializējot objektu uz virkni vai izmantojot hash funkciju.
- Izmantot specializētas kolekcijas vai datu struktūras, ja standarta vārdnīca nav piemērota.
Sarežģītas atslēgas piemērs:
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";