我想在我的List<List<double[]>>()
中为我的所有double[]
添加一列零。如何在列表<列表<double[]>>()中添加一列零?
的double[]
的长度是目前2,我想有长度3.零应始终处于第三位置的doubles[]
,例如:
double[50, 75] // double [50,75,0]
这在所有完成在List<List<double[]>>
之内的List<double[]>
。
有没有简短的方法来做到这一点?
我想在我的List<List<double[]>>()
中为我的所有double[]
添加一列零。如何在列表<列表<double[]>>()中添加一列零?
的double[]
的长度是目前2,我想有长度3.零应始终处于第三位置的doubles[]
,例如:
double[50, 75] // double [50,75,0]
这在所有完成在List<List<double[]>>
之内的List<double[]>
。
有没有简短的方法来做到这一点?
有代码行而言这样做的一小段路,但分配和拷贝的数量等于阵列的原始列表的数量:
var res = orig.
Select(list => list
.Select(array => array.Concat(new[] {0.0}).ToArray())
.ToList()
).ToList();
因为要在阵列中源列表扩展你需要操纵它们在内部列表:
foreach (var list in rootList)
{
for (var i = 0; i < list.Count; i++)
{
var actor = list[i];
list[i] = new double[actor.Length + 1]; // all elements will be 0....
Array.Copy(list[i], actor, actor.Length); //just add the prev elements
}
}
上面的操作将采用日e改为指向List<List<double[]>>
的所有指针。 如果您不想在所有指向rootList
的指针上进行更改,@dasblinkenlight answer是否足够好。
我想她想扩大阵列。如果有另一个指向'orig'的指针,这个指针将不会进行更改。在这种情况下,她将在她的应用程序中有不一致的数据.... –
@OldFox OP问题是否想要对原始文件进行更改或复制是不明确的。 – dasblinkenlight