public string this[string key] { get { return TryGet(key); } set { Field field; if (_fields.TryGetValue(key, out field)) { field.Value = value; return; } _fields.Add(key, new Field { Name = key, Value = value, }); } }