Junior — Middle
Milliseid samme tuleb teha, et kasutada oma klassi võtmena sõnastiku tüüpi kogumis?
sobes.tech AI
Vastus AI-lt
Selleks, et kasutada oma klassi võtmena Dictionary<TKey, TValue>-s C#-is, peate tagama võtmete õige võrdlemise ja nende hash-koodide arvutamise. Selleks peate:
- Üle kirjutama meetodi
Equals(object obj), nii et see õigesti võrdleks teie klassi objekte oluliste väljade alusel. - Üle kirjutama meetodi
GetHashCode(), nii et võrdsed objektid omaksid sama hash-koodi.
Näide:
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);
}
}
Alternatiivina võite implementeerida IEqualityComparer<T> liidest ja anda selle konstruktorile, kui te ei soovi klassi ise muuta.