public Plane this[Planes plane] { get { Plane p = null; switch(plane) { case Planes.Prime: p = prime; break; default: foreach(Plane p1 in planes) { if (p1 != null) { if (p1.m_plane == plane) { p = p1; break; } } } break; } return p; } }