看起来我无法理解引用和值类型列表背后的概念。
在这里,我想填充一个30000 uint16的数组,一次有125个值。
完成后我想将它添加到列表中并开始填充另一个30000值的块。但是,我只将引用存储到一个数组中。这是一个测试代码:
UInt16[] ND = new UInt16[30000];
OMD.Clear();
for (int i = 0; i < 30000; i++) ND[i] = (ushort)i;
OMD.Add(ND);
for (int i = 0; i < 30000; i++) ND[i] = 13;
OMD.Add(ND);
在第二个循环中,OMD的第一个数组成员丢失其值并更改为13。
答案 0 :(得分:1)
您可以清除参考并在每个周期后创建一个新参考。
UInt16[] ND = new UInt16[30000];
OMD.Clear();
for (int i = 0; i < 30000; i++) ND[i] = (ushort)i;
OMD.Add(ND);
ND = new UInt16[30000];
for (int i = 0; i < 30000; i++) ND[i] = 13;
OMD.Add(ND);