두 개의 객체 목록을 생성 중입니다. 하나의 "새로운"목록, 하나의 "오래된 목록".Linq를 사용하여 목록 업데이트
새 목록의 개체에서 하나의 속성 값을 가져 와서 일치하는 개체의 이전 목록에서 새 값으로 설정하려고합니다.
//Original Solution
foreach (RyderQuestion quest in myList)
{
//compare it to every question in ryder questions
foreach (RyderQuestion oldQuestion in _ryderQuestions)
{
//if the question ids match, they are the same question, and should have the right selected option
//selecting the option sets the checkbox of the MultipleChoideQuestionControl
if (oldQuestion.QuestionID == quest.QuestionID)
{
oldQuestion.SelectedOption = quest.SelectedOption;
}
}
}
내가 조인 사용하여 더 effecient하기 위해 LINQ로 변환하려고하지만, 내가 어떻게 직접 값을 업데이트합니까?
var x = from quest in myList
join oldquest in _ryderQuestions
on new { quest.QuestionID, quest.ShowOn, quest.QuestionOrder }
equals new { oldquest.QuestionID, oldquest.ShowOn, oldquest.QuestionOrder }
select oldquest.SelectedOption = quest.SelectedOption;
이 쿼리는 x 목록에 값을 반환하지만 실제로는 이전 목록의 개체를 업데이트하려고합니다. 예를 들어
'LINQ'에서 할 수 없습니다. –
잘 주셔서 감사합니다. – DidIReallyWriteThat
최선의 방법은 다른 q에서 제안한 것입니다. http://stackoverflow.com/a/28226427/779513 –