Como você transpõe dimensões em uma coleção 2D usando o LINQ?

Considere a seguinte estrutura:

<code>IEnumerable<IEnumerable<int>> collection = new[] { 
    new [] {1, 2, 3}, 
    new [] {4, 5, 6}, 
    new [] {7, 8, 9} 
};
</code>

Como posso enumerar essa coleção para obterIEnumerable<int> coleções constituídas pelos primeiros itens, segundo itens, etc.?

Ou seja, {1, 4, 7}, {2, 5, 8}, ...

(Embora a implementação que eu tenha escolhido sejaint[] objetos, suponha que você só temIEnumerable<int> funcionalidade. Obrigado.)

questionAnswers(4)

yourAnswerToTheQuestion