public string this[string name] { get { string value; if (values.TryGetValue(name, out value)) return value; return null; } set { if (value != null) { values[name] = value; } else if (values.ContainsKey(name)) { values.Remove(name); } } }