Junior — Middle
Kokius žingsnius reikia atlikti, kad savo klasę naudotumėte kaip raktą žodynų kolekcijoje?
sobes.tech AI
Atsakymas iš AI
Norėdami naudoti savo klasę kaip raktą Dictionary<TKey, TValue> C# kalboje, turite užtikrinti teisingą raktų palyginimą ir jų maišos kodų apskaičiavimą. Tam reikia:
- Perrašyti metodą
Equals(object obj), kad jis teisingai palygintų jūsų klasės objektus pagal reikšmingus laukus. - Perrašyti metodą
GetHashCode(), kad lygūs objektai turėtų tą patį maišos kodą.
Pavyzdys:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(object obj)
{
if (obj is Person other)
{
return Name == other.Name && Age == other.Age;
}
return false;
}
public override int GetHashCode()
{
return HashCode.Combine(Name, Age);
}
}
Alternatyviai, galite įgyvendinti IEqualityComparer<T> sąsają ir perduoti jį į žodyno konstruktorių, jei nenorite keisti pačios klasės.