我正在尝试使用 ElementAt() 方法循环访问项目。在我看来,我有两个正在使用的模型:
List<SchoolIn.ViewModels.EnrolledCourseData> courses = ViewBag.Courses; List<SchoolIn.Models.Enrollment> dayofclass = ViewBag.classDay;
然后在 foreach 循环中我有这个:
foreach (var course in courses.Select ((x,i)=>new{Data=x,Index=i}))
{
@course.Data.Title
if (course.Index < dayofclass.Count())
{
@dayofclass.ElementAt(course.Index).classDays
}
if (Model.Enrollments != null)
{
@Html.DropDownList("searchString", Model.WeekDays.Select(s => new SelectListItem { Text = s.ToString(), Value = s.ToString() }))
@Html.DropDownList("searchString", Model.Enrollments.FirstOrDefault().WeekDays.Select(s => new SelectListItem { Text = s.ToString(), Value = s.ToString(), Selected = s.ToString().Equals(dayofclass.ElementAt(course.Index).classDays) }))
}
}
这条线按预期工作。它在 classDays 模型的这个索引处打印字符串:@dayofclass.ElementAt(course.Index).classDays
我想要的是使用 ElementAt() 方法将这个相同的字符串放在下拉列表中。这是引发 ArgumentOutOfRange 异常的代码部分:
等于(dayofclass.ElementAt(course.Index).classDays
如果我像这样硬编码... Equals(dayofclass.ElementAt(4).classDays... 它可以工作,所以我认为必须有某种方法来获取我的 classDays 中的元素。有什么想法吗?
感谢您对此的任何帮助。