このコードを1つのLINQクエリに変換することは可能ですか?以前にこのようなことをしたと誓ったかもしれませんが、そのコードがどこにあるのかわかりません。サブクエリを実行し、あるリストに別のリストの値がある場合は、選択したアイテムの値を変更したいと思います。
var selectInstructors = _instructorService.GetAllNonGuestInstructors()
.Select(i => new SelectListItem()
{
Text = i.User.ToFullName(),
Value = i.Id.ToString()
}).ToList();
var selectedItems = schedule.Instructors
.Select(instructior1 => selectInstructors.FirstOrDefault(s => s.Value == instructior1.Id.ToString()))
.Where(selectedItem => selectedItem != null);
foreach (var selectedItem in selectedItems )
{
selectInstructors.Remove(selectedItem);
selectedItem.Selected = true;
selectInstructors.Add(selectedItem);
}
したがって、リストに次の値があると仮定しましょうselectInstructors
:John Smith、1 Jane Doe、2 Dave Ritter、3(永続化されたインストラクターを繰り返す前に、selected
ブール値はデフォルトのfalseです)
クラスには、そのschedule.Instructors
スケジュールのインストラクターの永続的なリストがあります:John Smith、1 Dave Ritter、3
さて、私がやりたいのは、値がに等しいSelected
プロパティのいずれかを設定することですselectInstructors
schedule.Instructors