Sobes.tech
Junior

Ce este un dicționar în C#?

sobes.tech AI

Răspuns de la AI

Dicționarul (Dictionary) în C# este o colecție care stochează perechi de "cheie-valoare", unde fiecare cheie este unică și este utilizată pentru accesul rapid la valoarea corespunzătoare. Implementază interfețele IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable. Este bazat pe o tabelă hash.

Caracteristici principale:

  • Neordonat: Ordinea elementelor din dicționar nu este garantată și se poate schimba la adăugare/ștergere.
  • Performanță: Operațiile de adăugare, ștergere și căutare după cheie au o complexitate medie de O(1) (în cazul ideal, fără coliziuni de hash) și O(n) în cel mai rău caz.
  • Unicitatea cheilor: Fiecare cheie trebuie să fie unică în dicționar. Încercarea de a adăuga un element cu o cheie existentă va duce la o excepție.

Exemplu de utilizare:

// Crearea unui dicționar
Dictionary<string, int> elevi = new Dictionary<string, int>();

// Adăugarea elementelor
elevi.Add("Ivanov", 5);
elevi["Petrov"] = 4; // Mod alternativ de adăugare/actualizare

// Verificarea existenței unei chei
if (elevi.ContainsKey("Ivanov"))
{
    // Obținerea valorii după cheie
    int nota = elevi["Ivanov"]; // nota == 5
}

// Parcurgerea elementelor
foreach (KeyValuePair<string, int> elev in elevi)
{
    // elev.Key - cheie, elev.Value - valoare
    Console.WriteLine($"{elev.Key}: {elev.Value}");
}

// Ștergerea unui element
elevi.Remove("Petrov");

Compararea cu alte colecții:

Colecție Scop principal Acces prin index Acces prin cheie Unicitatea cheilor Ordine
List<T> Secvență de elemente Da Nu Nu Da
HashSet<T> Set de elemente unice Nu Nu Da Nu
Dictionary<TKey, TValue> Perechi cheie-valoare pentru căutare rapidă Nu Da Da Nu