我将一个数组初始化为
Double[][] myarr = Enumerable.Repeat(new double[12], 13).ToArray();
然后在循环中我递增值,如
myarr[0][0]++;
这会导致所有值如 myarr[1][0]、myarr[2][0]、myarr[3][0] ..... myarr[12][0] 递增 1。
使用 for 循环 (0-12) 我正在初始化时不会出现此问题
myarr[i] = new double[12];
为什么会这样?
最佳答案
其他答案已经说明了问题。解决方案是在每次迭代时创建一个新数组,例如
double[][] myarr = Enumerable.Range(0, 13)
.Select(ignored => new double[12])
.ToArray();
关于c# - Enumerable.Repeat 有一些内存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071032/