У меня есть два анонимных список объектов следующим образомКак обновить анонимные объекты собственности с помощью LINQ и содержит
var persons = people.Select(x => new { Name = x.Name, Year = x.Value });
var years = yrs.Select(y => new { OldYear = y.Name, NewYear = y.Value });
Теперь я хотел, чтобы обновить список лиц, в частности, что если какие-либо из года человека существует в списке лет как старый год, то свойство года необходимо обновить с помощью значения NewYear.
Это, как я сейчас делаю старой школы путь
foreach(var p in persons)
{
if(years.Any(a => a.OldYear == p.Year))
{
p.Year = ages.Single(a => a.OldYear == p.Year).NewYear; --> error
}
}
Это не работает, сог компилятор жалуется, что я не могу установить свойство только для чтения «Год» анонимного типа.
Есть ли более простой/лучший способ в LINQ, чтобы обновить список лиц на основе другого анонимного списка в одной инструкции LINQ?
Это изменяет данные в оперативной памяти; он не позволяет обновлять данные в базе данных. – Servy
, но при этом выбираются только люди, возраст которых существует в списке возрастов (что btw обновляло Q, чтобы быть названным годами, чтобы быть более понятным). но я также хочу выбрать всех лиц из первоначального списка, возраст которых не содержится в списке возрастов. Ваше заявление фильтрует людей, которые не являются тем, что я хотел. – user330612
Да, извините - обновлено. –