Dictionary<TKey, TValue> stores key-value pairs with O(1) average lookup time.
var scores = new Dictionary<string, int>
{
["Alice"] = 95,
["Bob"] = 87,
};
scores["Carol"] = 92;
scores.Add("Dave", 78);
Console.WriteLine(scores["Alice"]); // 95
Console.WriteLine(scores.Count); // 4
// TryGetValue — avoids KeyNotFoundException
if (scores.TryGetValue("Eve", out int eveScore))
Console.WriteLine($"Eve: {eveScore}");
else
Console.WriteLine("Eve not found");
// GetValueOrDefault (C# 8+)
int carolScore = scores.GetValueOrDefault("Carol", 0); // 92
foreach (var (name, score) in scores)
Console.WriteLine($"{name}: {score}");
// Keys and Values
foreach (string key in scores.Keys) Console.WriteLine(key);
foreach (int value in scores.Values) Console.WriteLine(value);
scores.ContainsKey("Alice"); // true
scores.ContainsValue(95); // true
scores.Remove("Dave");
scores.Clear();