【发布时间】:2014-11-04 21:05:36
【问题描述】:
我有一个包含一些属性的列表:
public class Class1
{
public int Id;
public string Name;
}
List<Class1> list1 = GetSomeData()
在这一步之后,我已经填写了 list1 中的所有 Id,但 Names 为空。我还有第二个列表,这些值是这样填充的:
public class Class2
{
public int Id;
public string Name;
}
List<Class2> list2 = GetSomeData()
所以 list2 已经填充了 ID 和名称 - ID 与 list1 相同,但当然在另一个索引上。
是否可以通过 linq 使用来自 list2 的名称来填充 list1 中的属性名称,这取决于 Ids? 我已经尝试过这样的事情,但它不起作用。我只能将名称添加到数组或(新)列表中,但不能添加到 list1。
list1.Join(list2,
l2 => l2.Id,
l1 => l1.Id,
(l1, l2) => { l1.Name = l2.Name; return l1.Name; });
或者这个 - 但是新子句有问题,所以我无法再次将它保存到 list1。
(from l1 in list1
join l2 in list2
on l1.Id equals l2.Id
select new { l1.Name = l2.Name });
感谢帮助
【问题讨论】: