Nik*_*wal 1 c# linq ienumerable
我将一个数组初始化为
Double[][] myarr = Enumerable.Repeat(new double[12], 13).ToArray();
Run Code Online (Sandbox Code Playgroud)
然后在一个循环中,我正在递增值,如
myarr[0][0]++;
Run Code Online (Sandbox Code Playgroud)
这导致myarr [1] [0],myarr [2] [0],myarr [3] [0] ..... myarr [12] [0]等所有值增加1.
当使用for循环(0-12)我正在初始化时没有发生此问题
myarr[i] = new double[12];
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
其他答案解释了这个问题.解决方案是在每次迭代时创建一个新数组,例如
double[][] myarr = Enumerable.Range(0, 13)
.Select(ignored => new double[12])
.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |