Secondo me la Console.ReadLine() è il sistema più elegante.

Se proprio vuoi una cosa simile al System("pause") del C, puoi provare a esportare con il P/Invoke la funzione system della msvcrt.dll.

Devi importare prima di tutto il Namespace System.Runtime.InteropServices e poi dichiarare la funzione:
codice:
        /*
         * C-Like System Function
         */
        [DllImport("msvcrt.dll")]
        static extern bool system(string str);
per chiamarla fai così:
codice:
		system("pause");
Ti invito a leggere qua: www.pinvoke.net per capirci di più sul P/Invoke.

Adesso a te la scelta, io ti consiglio la Console.ReadLine()