我有相同类型的2个对象列表,第一个列表的第一个项目应该添加特定的时间。此外,每个周期我都应该使用AddSeconds()
增加日期时间值。这是我的代码:
List<Logs> logList = new List<Logs>();
List<Logs> chartList = new List<Logs>();
for (int i = 0; i < specificValue; i++)
{
chartList.Add(logList[0]);
logList[0].Date = logList[0].Date.AddSeconds(1);
}
我的目的是使用更改日志创建图表数据,因此我必须使用具有增量日期值的特定时间向chartList添加相同的值。但是我的问题是这个代码创建了一个chartList,它具有上一个loglist项的所有相同值。我找到了一些使用foreach的解决方案,但在那种情况下我必须使用for循环。
答案 0 :(得分:2)
当您致电chartList.Add(logList[0])
时,您正在添加对象的引用,而不是创建新对象。
因此,在下一行中,当您向对象添加1秒时,还会在chartList
中向对象添加1秒。实际上,chartList
中的所有对象都是对完全相同的对象的引用。
将对象添加到chartList
时,需要创建对象的副本。