And*_*erd 13 linq multidimensional-array
我正在尝试创建一个双精度矩阵,表示实体之间的相关性.
这是我通过LINQ做的方式
double[][] correlationsRaw = (from e in entitiesInOrder
select
(from f in entitiesInOrder
select correlations.GetCorrelation(e, f)
).ToArray()).ToArray();
Run Code Online (Sandbox Code Playgroud)
这很好.
但我想要的是一个二维数组(双[,]),而不是锯齿状数组.
显然,我可以编写一些嵌套的for循环来将一个转换为另一个.
但是我可以在这里使用一些优雅的LINQ技巧吗?
Tho*_*que 15
我不认为有一种直接从Linq查询返回多维数组的简单方法...但是你可以创建一个带有锯齿状数组并返回多维数组的函数:
public T[,] JaggedToMultidimensional<T>(T[][] jaggedArray)
{
int rows = jaggedArray.Length;
int cols = jaggedArray.Max(subArray => subArray.Length);
T[,] array = new T[rows, cols];
for(int i = 0; i < rows; i++)
{
cols = jaggedArray[i].Length;
for(int j = 0; j < cols; j++)
{
array[i, j] = jaggedArray[i][j];
}
}
return array;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,它可以是一个扩展方法,允许您在Linq查询中使用它...
| 归档时间: |
|
| 查看次数: |
6954 次 |
| 最近记录: |