为了账号安全,请及时绑定邮箱和手机立即绑定

求高手帮看一个问题.NET问题

求高手帮看一个问题.NET问题

慕妹3146593 2018-12-07 13:05:20
1 alist = new List<ChartMetaData>(); 2 blist = new List<ChartMetaData>(); 3 clist = new List<ChartMetaData>(); 4 dlist = new List<ChartMetaData>(); 5 6 for (DateTime bDateTime = beginDatetime; bDateTime < endDatetime; bDateTime = bDateTime.AddMinutes(Convert.ToDouble(timeInterval))) 7 { 8 tempData = new ChartMetaData(); 9 tempData.GetDate = bDateTime; 10 if (Aitem=="1") 11 alist.Add(tempData); 12 if (Bitem == "1") 13 blist.Add(tempData); 14 listCount++; 15 } 16 17 18 onlinePowerList = createPower.GetList(seeid, beginDatetime, endDatetime); 19 if (onlinePowerList.Count > 0) 20 { 21 double[] pe = createWarnSet.GetBestValue(seeid, WarningType.P); 22 double[] zpe = createWarnSet.GetBestValue(seeid, WarningType.ZP); 23 24 ct = createSee.GetCt(seeid); 25 pt = createSee.GetPt(seeid); 26 foreach (OnlinePower model in onlinePowerList) 27 { 28 for (int i = 0; i < listCount; i++) 29 { 30 if (Aitem == "1" && alist[i].GetDate==model.GetTime) 31 { 32 alist[i].Value = model.PA * ct * pt; 33 alist[i].StrValue = alist[i].Value.ToString(); 34 alist[i].MaxValue = pe[1]; 35 alist[i].MinValue = pe[2]; 36 } 37 38 if (Bitem == "1" && blist[i].GetDate == model.GetTime) 39 { 40 blist[i].Value = model.PB * ct * pt; 41 blist[i].StrValue = blist[i].Value.ToString(); 42 blist[i].MaxValue = pe[1]; 43 blist[i].MinValue = pe[2]; 44 } 45 46 } 47 } 48 }   调试时 当调试到alist[i].Value被赋值为155时,监视一下下面的blist[i].Value值也会等于155 调试到下面给 blist[i].Value赋值为140时,监视一下上面的alist[i].Value的值也跟着变成了140,这个是什么情况,求高手帮忙
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

在for循环时,每次都new 个对象出来,问题即可解决。

产生原因:你在for循环操作中都是操作同一个内存副本。

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 304 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信