Delegar matriz

Estou experimentando chamar funções delegadas de uma matriz delegada. Consegui criar a matriz de delegados, mas como ligo para o delegado?

public delegate void pd();

public static class MyClass
{

    static void p1()
    {
        //...
    }

    static void p2 ()
    {
        //...
    }

    //...

    static pd[] delegates = new pd[] {

        new pd( MyClass.p1 ),
        new pd( MyClass.p2)
        /* ... */
    };
}

public class MainClass
{
    static void Main()
    {
        // Call pd[0]
        // Call pd[1]
    }
}

EDITAR: O motivo da matriz é que eu preciso chamar as funções delegadas por um índice, conforme necessário. Eles não são executados em resposta a um evento. Vejo um erro crítico (estúpido) no meu código, pois tentei executar a função delegar usando o tipo pd [] em vez do nome da matriz (delegados).

questionAnswers(5)

yourAnswerToTheQuestion