推送对象列表

时间:2015-01-14 03:42:34

标签: c# list object

我有一个定义的课程:

public class SavedScan
{
    public List<List<PointData>> SScan;
    public class PointData
    {
        public float amplitude;
    }
    public SavedScan()
    {
        SScan = new List<List<PointData>>();
    }
}

然后我有一个for循环,执行:

for (int i = 0; i < 10; ++i)
{
    List<SavedScan.PointData> tmp = new List<SavedScan.PointData>();
    SavedScan.PointData pointData = new SavedScan.PointData();

    for (int j = 0; j < 10; ++j)
    {
        pointData.amplitude = 5.0;
        tmp.Add(pointData);
    }
    ss.SScan.Add(tmp);
}

有趣的是,当我将调试器运行到tmp.Add(pointData)时,我可以看到正在读取的pointData结构。但是,当它跳出for循环进入ss.SScan.Add(tmp)时,pointData.amplitude内的tmp值将全部重置为0.

我无法弄清楚我哪里出错了,所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在循环中创建PointData 的实例

for (int j = 0; j < 10; ++j)
{
    SavedScan.PointData pointData = new SavedScan.PointData();
    pointData.amplitude = 5.0;
    tmp.Add(pointData);
}