LINQ échange les colonnes en rangées

Est là une fantaisie expression LINQ qui pourrait me permettre de faire ce qui suit dans une beaucoup plus simple de la mode. J'ai un List<List<double>>en supposant que la Liste sont des colonnes dans une matrice 2d, je veux échanger la liste des colonnes dans une liste de lignes. J'ai la suite de la solution la plus évidente:

int columns = 5;
var values; //assume initialised as List<List<double>>()

var listOfRows = new List<List<double>>();
for (int i = 0; i < columns ; i++)
{
    List<double> newRow = new List<double>();
    foreach (List<double> value in values)
    {
        newRow.Add(value[i]);
    }
    listOfRows.Add(newRow);
}

source d'informationauteur Seth