C #: maneira mais limpa de dividir uma matriz de cadeia em N instâncias N itens longos

Eu sei como fazer isso de uma maneira feia, mas estou me perguntando se existe um método mais elegante e sucinto.

Eu tenho uma matriz de string de endereços de email. Suponha que o array de strings tenha comprimento arbitrário - ele pode ter alguns itens ou pode ter muitos itens. Eu quero construir outra cadeia consistindo de, digamos, 50 endereços de e-mail da matriz de cadeia, até o final da matriz e invocar uma operação de envio após cada 50, usando a seqüência de 50 endereços no método Send ().

A questão mais geral é qual é a maneira mais limpa / clara de fazer esse tipo de coisa. Eu tenho uma solução que é um legado dos meus aprendizados de VBScript, mas estou apostando que há uma maneira melhor em C #.

questionAnswers(8)

yourAnswerToTheQuestion