Maior divisor comum de um conjunto com mais de 2 números inteiros

Há várias perguntas sobre o estouro de pilha discutindo como encontrar o maior divisor comum de dois valores. Uma boa resposta mostra uma limpezafunção recursiva para fazer isso.

Mas como posso encontrar o MDC de um conjunto de mais de 2 números inteiros? Não consigo encontrar um exemplo disso.

Alguém pode sugerir o código mais eficiente para implementar essa função?

static int GCD(int[] IntegerSet)
{
    // what goes here?
}