c# - 循环后所有元素相同

标签 c# arrays element

我想为数组的元素赋值。运行后,ListResults 的所有元素都与 ListROI 的最后一个元素相同。

ListResults = new DataPoint[nROIrow];
DataPoint TempRes = new DataPoint();
System.Collections.ArrayList List = new System.Collections.ArrayList();

for (int i = 0; i < nROIrow; i++)
{
   TempRes.X = ListROI[i].X;
   TempRes.Y = ListROI[i].Y;
   TempRes.u = dispROIcorr[i, 0];
   TempRes.v = dispROIcorr[i, 1];

   ListResults[i] = TempRes;

   disp.Xpix = ListResults[i].X;
   disp.Ypix = ListResults[i].Y;
   disp.X = ListResults[i].X;
   disp.Y = ListResults[i].Y;
   disp.U = ListResults[i].u;
   disp.V = ListResults[i].v;

   List.Add(disp);
   bSAVE.Enabled = true;  
}

最佳答案

您只需创建一个 new DataPoint(); 一次。因此,您最终会得到一个包含对同一个实例的引用的数组。

简单的修复:

ListResults = new DataPoint[nROIrow];
//DataPoint TempRes = new DataPoint();
System.Collections.ArrayList List = new System.Collections.ArrayList();

for (int i = 0; i < nROIrow; i++)
{
   DataPoint TempRes = new DataPoint();
   ...

   ListResults[i] = TempRes;

   var disp = new ...
   disp.Xpix = ListResults[i].X;
   ....

   List.Add(disp);
}  

关于c# - 循环后所有元素相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24070449/

相关文章:

javascript - 遍历 DIV 元素并获取动态添加的文本输入 - PHP

python - 使用二维数组作为索引从二维 numpy 数组中提取元素

javascript - 当现有元素只有类、没有 ID 时,jQuery/Javascript 将唯一元素添加到其他元素

css - 悬停元素高度

c# - 将用户帐户信息存储在单例对象上

c# - 为下次运行应用程序保存文本框值

javascript - 遍历包含图像的数组并删除带有错误 Javascript 的图像

javascript - jquery : not able to select table elements which are created dynamically by jquery

C# - 密码数据库

c# - MVVM 中的 Collection View