public int this [int index] { get { int [] indices = GetIndices (); if (index < 0 || index >= indices.Length) throw new ArgumentOutOfRangeException ("index"); return indices [index]; } }