首先,我在列表<>中添加我的类:
然后将该类复制到新类,并在按照逻辑再次保存到列表<>中更改日期后,但是已经保存在列表中的第一个元素的日期也被更改。
请看下图:
这是我的完整代码:
if (Session["CompanyId"] != null)
{
List<CalendarList> CalendartableList = new List<CalendarList>();
DateTime cldate = Convert.ToDateTime(CalendarList.DateDue);
CalendarList.CompanyId = Convert.ToInt32(Session["CompanyId"]);
CalendarList.Category = 15;
CalendarList.Status = 1;
CalendarList.Identifier = 232;
CalendarList.Quarter = 5;
CalendarList.IsCompleted = false;
CalendarList.CalendarGUID = CalendarList.Description;
CalendartableList.Add(CalendarList);
DateTime po_Date = cldate;
int pi_Count = 0;
while (po_Date.Year == DateTime.Now.Year)
{
pi_Count += 1;
switch (CalendarList.Interval)
{
case "Weekly":
{
po_Date = cldate.AddDays(7 * pi_Count);
break;
}
case "Biweekly":
{
po_Date = cldate.AddDays(14 * pi_Count);
break;
}
case "Monthly":
{
po_Date = cldate.AddMonths(1 * pi_Count);
break;
}
default:
{
po_Date = cldate.AddMonths(3 * pi_Count);
break;
}
}
if (po_Date.Year == DateTime.Now.Year)
{
CalendarList newlist = new CalendarList();
newlist = CalendarList;
newlist.DateDue = po_Date.ToString();
CalendartableList.Add(newlist);
}
}
还有其他方法可以实现吗?
最佳答案
您需要记住的是,您是将引用
添加到您的对象
,而不是该对象的副本,添加到列表中。最简单的修复方法是将 .Clone()
方法添加到您的 object
以获取它自身的副本并将其创建为新的 object
.克隆副本可以独立于原始副本进行修改。
关于c# - 在 list<> 中添加一个类并再次复制该类并再次添加并进行一些修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57204169/