把我的100行数组减少到2..
很想知道是否有一种不同的方法来实例化数组,并允许下面的代码
public [,]ary = new double[,]{
{ 11.4, 11.4, 11.4, 11.4, 11.4, 11.3, 10.9, 17.3, 10.6 },
{ 14.6, 14.6, 14.6, 14.6, 14.6, 14.6, 14.6}
}目前,我已经修正了我的问题,将0添加到数组2中的第8和第9位置。
或者如果我一定要把它打出来
ary[0,1] = [...]
.
.
//Skipping 8th and 9th position in array 2发布于 2014-05-23 21:00:47
一种选择是编写一种方法,将锯齿数组转换为二维数组,初始化锯齿数组,然后将其转换。这将导致任何小于max数组的数组被填充默认值,这似乎是您想要的。
public static T[,] MakeSquare<T>(this T[][] jagged)
{
int maxWidth = jagged.Max(array => array.Length);
T[,] output = new T[jagged.Length, maxWidth];
for (int i = 0; i < output.GetLength(0); i++)
for (int j = 0; j < output.GetLength(1); j++)
{
output[i, j] = jagged[i][j];
}
return output;
}现在你可以写:
double[,] array = new double[][]
{
new[]{ 11.4, 11.4, 11.4, 11.4, 11.4, 11.3, 10.9, 17.3, 10.6 },
new[]{ 14.6, 14.6, 14.6, 14.6, 14.6, 14.6, 14.6}
}.MakeSquare();现在,这种方法确实意味着在运行时增加一些成本,以换取程序员方面的方便,但是如果这些数组是您定义为文本的数组,那么它们实际上不应该太大,以至于将它们的数据复制到一个新的数组上是非常昂贵的。如果有那么多内容,那么首先不应该将其定义为文字数据,而是将其放入数据库或其他什么地方。
https://stackoverflow.com/questions/23838171
复制相似问题