一个list引用问题折磨我几个小时,欲先杀之而后快
就是有这么一个循环,循环体里每次要把循环出的数据放到一个list里,后续再处理
为了省事,我就每次循环的时候把它先clear掉,然后再重新往里赋值:
List<PointPairList> pointPairs = new List<PointPairList> pointPairs();
foreach (WlReultList item in Result)
{
pointPairs.Clear();
for (int i = 0; i < item.Results.Count; i++)
{
PointPair pointPair = new PointPair(item.AllWls[i], Math.Round(item[item.AllWls[i]][0], 6));
pointPairs.Add(pointPair);
}
pGeneralGraphControl1.GraphPane.AddCurve("", pointPairs, Color.Yellow, SymbolType.None);
pGeneralGraphControl1.GraphPane.CurveList[curveIndex].Points = pointPairs;
pGeneralGraphControl1.GraphPane.CurveList[curveIndex].IsVisible = curveIndex == dataIndex;
curveIndex++;
}
一切看起来都是无比的正常,甚至我跑断点也确实看到两个不同的list被分别存进了CurveList里
然鹅,显示的时候,就永远只有一条数据,就是最后一条数据
我实在很服气,我这个显示还有翻页功能,就是可以每一条数据都单独显示出来,然鹅每一条数据也都是最后一条数据
后来终于把Clear改成了new一个新的对象,于是我终于可以睡觉了
以上