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 |