2012-03-22 9 views
0

を変更するコード、私は理解できない間違いが見つかりません。値は自発的にここ

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); 

作成されているので、それは一意のオブジェクトであるように思わ...

+1

問題を示す短くて完全なプログラムが本当に役立つでしょう... –

答えて

8

data_gapdataと同じ内側のリストが含まれています。
各インナーリストもコピーする必要があります。