用c# LINQ编写的带有二维列表的函数
本文关键字:二维 函数 列表 LINQ | 更新日期: 2023-09-27 18:02:49
我想用c++写一个函数,返回一个Z*Y矩阵(Y>Z),语法简单:
double[Z][Y] Function (double[Y] vector){
for (int i, i<Z, i++){
for (int j, j<Y, j++){
double[Z][Y] Tem[i][j] = vector[i]/vector[j];
}
}
return Tem;
}
现在我想用linq
代替for loop
翻译成C#
语法(如何查询二维List
),用二维List<List<double>>
代替matrix
。此外,如何声明具有给定大小的二维List
,例如Z*Y
?
像这样?
List<List<double>> GetFactors(double[] vector, int limit){
return vector.Take(limit).Select(i => vector.Select(j => i/j).ToList()).ToList();
}
限制第一个维度为vector
的第一个Z
(本例中为limit
)元素
vector.Take(limit)
为每一个值选择一个vector[i] / vector[j]
(共Y
个元素)的列表
.Select(i => vector.Select(j => i/j).ToList()
返回所有list (list of list of double)
.ToList()
你可能想给j => i/j
添加一些零处理,例如:
j => Math.Abs(j) < double.Epsilon ? i/j : 0.0