Sobes.tech
Junior

Mi az a szótár (Dictionary) C#-ban?

sobes.tech MI

Válasz az MI-től

A C#-ban a Dictionary egy olyan gyűjtemény, amely "kulcs-érték" párokat tárol, ahol minden kulcs egyedi, és gyors hozzáférést biztosít a megfelelő értékhez. Megvalósítja az IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable interfészeket. Egy hash-táblán alapul.

Fő jellemzők:

  • Nem rendezett: A szótár elemeinek sorrendje nem garantált, és hozzáadás/eltávolítás során változhat.
  • Teljesítmény: A hozzáadás, eltávolítás és kulcs szerinti keresés műveletek átlagos komplexitása O(1) (ideális esetben, hash ütközések nélkül), és a legrosszabb esetben O(n).
  • Kulcsok egyedisége: Minden kulcsnak egyedinek kell lennie a szótárban. Egy meglévő kulcsú elem hozzáadása kivételt eredményez.

Használati példa:

// Szótár létrehozása
Dictionary<string, int> tanulók = new Dictionary<string, int>();

// Elemek hozzáadása
tanulók.Add("Ivanov", 5);
tanulók["Petrov"] = 4; // Alternatív módszer a hozzáadáshoz/frissítéshez

// Ellenőrzés, hogy létezik-e a kulcs
if (tanulók.ContainsKey("Ivanov"))
{
    // Érték lekérése kulcs alapján
    int jegy = tanulók["Ivanov"]; // jegy == 5
}

// Elemenkénti bejárás
foreach (KeyValuePair<string, int> tanuló in tanulók)
{
    // tanuló.Key - kulcs, tanuló.Value - érték
    Console.WriteLine($"{tanuló.Key}: {tanuló.Value}");
}

// Elem eltávolítása
tanulók.Remove("Petrov");

Összehasonlítás más gyűjteményekkel:

Gyűjtemény Fő célja Hozzáférés indexelésen keresztül Hozzáférés kulcs szerint Kulcsok egyedisége Rendezés
List<T> Elemek sorozata Igen Nem Nem Igen
HashSet<T> Egyedi elemek halmaza Nem Nem Igen Nem
Dictionary<TKey, TValue> Gyors kereséshez kulcs-érték párok Nem Igen Igen Nem