using System.Collections.Generic;
public static void Main()
var cache = new MyCache();
foreach (var k in new[] { "foo", "baz", "xyz", "abc" })
Console.WriteLine(k + ": " + (cache[k] ?? "Miss!"));
private IDictionary<string, string> _values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
public void Add(string key, string value) {
_values.TryAdd(key, value);
public string this[string key] {
if (_values.TryGetValue(key, out var result))