【发布时间】:2013-09-11 07:42:42
【问题描述】:
我经常需要将两个数组组合成一个矩阵(相同的长度和类型)。我想知道是否有比以下更优雅的 linq 方式:
var result = new double[dt.Count, 2];
for (int i = 0; i < dt.Count; i++)
{
result[i, 0] = dts[i];
result[i, 1] = dt[i];
}
我试过了
var result = dts.zip(dt, (a,b) => new{a,b})
和:
var result = dts.Concat(dt).ToArray()
但我想做的事也不做……
【问题讨论】:
-
恐怕您无法将二维数组作为标准 LINQ 输出。您可以创建自己的扩展方法(如this one),但它不会比标准的
forloopw 更有效) -
此外,您可以编写自己的扩展方法(根据您的喜好实现,我想知道 LINQ 是否是数学相关内容的好选择...)
-
@BassamAlugili:我看了这个问题,但我认为它不一样,因为我在下面查看了 sourabh 的相同答案,但这并没有达到我想要的效果。被勾选为正确的答案也将它们堆叠在一起......
-
@nik 重复链接中的信息解决了同样的问题不用担心这个;这只是给有同样问题的人的信息。