ElementAt() メソッドを使用してループ内のアイテムにアクセスしようとしています。私の見解では、私が使用している 2 つのモデルがあります。
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
このようにハードコーディングすると... Equals(dayofclass.ElementAt(4).classDays... が機能するので、classDays の要素を取得する方法が必要だと考えています。何かアイデアはありますか?
これを手伝ってくれてありがとう。