我创建了一个列表名称AllCalendarEventInfo
,其中还有2个列表。当我尝试将列表添加到列表的第一个索引时,它抛出IndexOutOfRangeException
model.AllCalendarEventInfo[i].allEventDates.Add(date);
model.AllCalendarEventInfo[i].allCalendarDates.AddRange(model.AllDateList);
在这两行中。请帮忙。
这是我的代码:
var i = 0;
model.event_dates =
_iadminSettingsService.GetEventDatesByEventId(model.event_id);
foreach (var date in model.event_dates)
{
var addDate = date.event_date_start;
while (addDate >= date.event_date_start && addDate <= date.event_date_stop)
{
model.AllDateList.Add(new CalendarDates
{
Id = date.event_id,
Date = Convert.ToDateTime(addDate)
});
if (addDate.HasValue)
{
addDate = addDate.Value.AddDays(+1);
}
}
model.AllCalendarEventInfo[i].allEventDates.Add(date);
model.AllCalendarEventInfo[i].allCalendarDates.AddRange(model.AllDateList);
model.AllDateList.Clear();
i++;
}
这是所有型号:
public class CalendarDates
{
public int Id { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}",
ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
}
public class AllCalendarEventInfo
{
public AllCalendarEventInfo()
{
allCalendarDates = new List<CalendarDates>();
allEventDates = new List<event_dates>();
}
public List<CalendarDates> allCalendarDates { get; set; }
public List<event_dates> allEventDates { get; set; }
}
public class Event_ViewModel
{
public Event_ViewModel()
{
AllDateList = new List<CalendarDates>();
AllCalendarEventInfo = new List<AllCalendarEventInfo>();
}
public List<event_dates> event_dates { get; set; }
public List<event_dates> allEventDates { get; set; }
public List<CalendarDates> AllDateList { get; set; }
public List<AllCalendarEventInfo> AllCalendarEventInfo { get; set; }
}
答案 0 :(得分:0)
您需要添加一个 新的AllCalendarEventInfo
到 model.AllCalendarEventInfo
,然后尝试使用索引器访问它。您甚至试图在列表中添加任何内容之前都试图访问列表中的第一项,因此索引超出范围。
所以一会儿之后的代码块应该以
开始model.AllCalendarEventInfo.add(new AllCalendarEventInfo());
model.AllCalendarEventInfo[i].allEventDates.Add(date); model.AllCalendarEventInfo[i].allCalendarDates.AddRange(model.AllDateList);
model.AllDateList.Clear();
i++;
很抱歉,格式化是通过我的手机