2012-10-14 71 views
0

我試圖使用ElementAt()方法來訪問循環中的項目。在我看來,我有兩個模型,我的工作:如何使用我的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異常的代碼的一部分:

的equals(dayofclass.ElementAt(course.Index).classDays

如果我硬編碼像這樣...等於(dayofclass.ElementAt(4).classDays ...它作品所以我想一定是有辦法讓在我classDays元素。任何想法?

感謝這一個任何幫助。

回答

0

你得到一個ArgumentOutOfRangeException因爲整型參數可能是長於你的dayofclass列表/數組長度的大小。

我想你的索引屬性就是它通常的含義。如果是這樣,你應該確認這兩個列表具有相同的大小。

你的硬編碼值4工作,因爲dayofclass長度至少爲5

0

Here'I解決它:

  String sellectedDay = dayofclass.ElementAt(course.Index).classDays; 
        String sellectedDay = dayofclass.ElementAt(course.Index).classDays; <!---sets the element to a local variable to be used by the dropdown list---> 

     selectedday = sellectedDay; 
相關問題