Lo dico in modo più chiaro.

La classe Program contiene una SelectList.
La classe SelectList contiene un puntatore a Program.

Come risolvo questa "ricorsività"?
L'unico modo è metterli nello stesso file header?