Sobes.tech
Junior — Middle

Kādus soļus jāveic, lai izmantotu savu klasi kā atslēgu vārdnīcas kolekcijā?

sobes.tech AI

Atbilde no AI

Lai izmantotu savu klasi kā atslēgu Dictionary<TKey, TValue> C# valodā, ir jānodrošina pareiza atslēgu salīdzināšana un to hash kodu aprēķins. Tam ir jā:

  1. Pārrakstīt metodi Equals(object obj), lai tā pareizi salīdzinātu jūsu klases objektus pēc nozīmīgajiem laukiem.
  2. Pārrakstīt metodi GetHashCode(), lai vienādi uzskatīti objekti būtu ar vienādu hash kodu.

Piemērs:

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);
    }
}

Alternatīvi, jūs varat īstenot IEqualityComparer<T> saskarni un nodot to konstruktoram, ja nevēlaties mainīt pašu klasi.