有没有一个奇怪的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); }
解决方法
您可以轻松地LINQify内部循环:
vector.AddRange(values.Select(value => value [i]));
是否改善可读性完全取决于您!