推送对象列表

Pushing a List of objects

我有一个 class 定义:

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)的那一刻,tmp内部的pointData.amplitude值全部重置为0。

我不知道哪里出错了,非常感谢您的帮助。

在循环中创建您的 PointData 实例:

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