我正在尝试创建一个列表并向其中插入值。但是当我添加一个新项目时,它会将列表中的所有现有项目更改为我添加的相同值,我不明白为什么。
这是我的代码:
public List<Times> CreateListOfTimes()
{
var listOfTimes = new List<Times>();
var times = new Times();
int startTime = 8;
int endTime = startTime + 1;
for (int i = 0; i < 8; i++)
{
times.StartTime = startTime;
times.EndTime = endTime;
listOfTimes.Add(times);
startTime++;
endTime++;
}
return listOfTimes;
}
我第一次为时间添加一个值,times.StartTime = 8 和 times.EndTime = 9。当我第二次循环时,我添加了 9 和 10,但我也将已经添加的 8 和 9 更改为 9 和 10。为什么它发生了,我该如何解决?
因为Times
每次都是同一个对象,你必须在循环中创建一个新对象:
for (int i = 0; i < 8; i++)
{
var times = new Times();
times.StartTime = startTime;
times.EndTime = endTime;
listOfTimes.Add(times);
startTime++;
endTime++;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句