Вы писали:
Как написать LINQ сравнить этот список и изменения «IsActive» propety из первого списка, если содержит идентификатор из второго списка.
Ваш первый список не имеет свойства IsActive, однако элементы вашего списка имеют его. Поэтому я предполагаю, что вы хотите следующее:
Как получить последовательность всех элементов в первом списке, которые имеют Id любого из элементов во втором списке, так что я могу изменить IsActive свойства тех элементы.
LINQ используется для перечисления объектов. Вы не можете изменить объект в инструкции linq
Если вы хотите изменить объекты, вам придется перечислить их, например, с помощью ForEach.
IEnumerable<int> activeIds = secondList.Select(item => item.Id);
IEnumerable<Doc> activeDocs = firstList.Where(item => activedIds.Contains(item.Id));
foreach (Doc activeDoc in activeDocs)
{
activeDoc.IsActive = true;
}
Опасайтесь: я не изменил ISActive для всех inActive docs.Если вы хотите, что вы должны будете Foreach всех элементов из вашего firstList:
IEnumerable<int> activeIds = secondList.Select(item => item.Id);
foreach (Doc doc in firstList)
{
doc.IsActive = activeIds.Contains(doc.Id);
}
Он сказал, что два списка ... – rickythefox
чистых и мощного, мне это нравится! –