我的课程:
public abstract class BaseModel
{
public virtual Int32 Id { get; set; }
}
public class ClassA : BaseModel
{
public Int32 field1 { get; set; }
public Int32 field2 { get; set; }
public ClassB NameB { get; set; }
public List<ClassC> NameC { get; set; }
}
public class ClassB : BaseModel
{
public string field1 { get; set; }
...
}
public class ClassC : BaseModel
{
public string field1 { get; set; }
...
}
然后我有:
List<ClassA> listA = getAllClassA(); //with null values for ClassB and ClassC
List<ClassB> listB = getAllClassB();
List<ClassC> listC = getAllClassC();
如何使用LINQ在“A”列表中使用BaseModel ID作为联合参数加入列表“b”和“c”?
我知道有一种方法可以使用foreach来做到这一点,但我不知道这是否是最好的方式......
EX:使用foreach
foreach (var item in listA)
{
item.NameB = ListB.Where(w => w.Id == item.Id).FirstOrDefault();
foreach (var c in ListC.Where(w => w.ID == item.ID)
{
item.NameC.Add(c);
}
答案 0 :(得分:0)
试试这个
修改强>
foreach (var item in listA)
{
item.NameB = ListB.Where(w => w.Id == item.Id).FirstOrDefault();
item.NameC = ListC.Where(w => w.ID == item.ID).ToList();
}