public KeyValue this[string key] { get { var child = Children .FirstOrDefault(c => string.Equals(c.Name, key, StringComparison.OrdinalIgnoreCase)); return child ?? Invalid; } }