LINQ将列交换为行

Set*_*eth 10 c# linq

是否有一个花哨的LINQ表达式,可以让我以更简单的方式执行以下操作.我有一个List<List<double>>,假设List是2d矩阵中的列,我想将列列表交换为行列表.我有以下明显的解决方案:

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);
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ann 5

你可以很容易地LINQify内循环:

vector.AddRange(values.Select(value => value[i]));

是否提高可读性完全取决于您!