public Object this[String key] { get { return Dictionary[key]; } set { if (orderedKeys.Contains(key) == false) { orderedKeys.Add(key); } Dictionary[key] = value; } }