【发布时间】:2015-01-09 03:17:24
【问题描述】:
我有两个匿名对象列表如下
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 语句中的另一个匿名列表更新人员列表?
【问题讨论】:
标签: c# linq anonymous-types