这是代码
for (j = 0; j < n_sign; j++)
{
line = new List<double>();
for (i = 0; i < n_vec; i++)
{
if (data_gap[i][j] != gap)
line.Add(data_gap[i][j]);
else
{
grad.Add(0);
List<int> point = new List<int>();
point.Add(i);
point.Add(j);
gaps.Add(point);
}
}
List<double> mm = new List<double>();
mm.Add(line.Min());
mm.Add(line.Max());
minmax.Add(mm);
for (i = 0; i < n_vec; i++)
{
if (data_gap[i][j] == gap)
data[i][j] = line[rand.Next(line.Count)];
}
}
我无法理解,为什么在这个函数之后data_gap的值会改变为数据的值! 已经以这种方式创建了data_gap
data_gap = new List<List<double>>(data);
所以它似乎是一个独特的对象......
答案 0 :(得分:8)
data_gap
包含与data
相同的内部列表
您还需要复制每个内部列表。