public virtual object this [int index] { get { return host.GetKey (index); } set { throw new NotSupportedException("attempt to modify a key"); } }