foreach (var item in lstObj)
{
item.links = new List<ObjTest>();
foreach (var rel in item.relations)
{
foreach (var item2 in lstObj)
{
if (rel.Object_ID2 == item2.ID)
{
item.links.Add(item2);
}
}
}
}
我想把它改成lambda表达式,但我不明白!
以下是对象类:
ObjTest
public int ID
public string content;
public List<ObjRelation> relations; //relations with other ObjTest object
public List<ObjTest> links; //objTest objects of relations
ObjRelation
public int ID;
public int object_ID1;
public int object_ID2;
所以ObjTest包含两个列表,[relation]和[links]
在[关系]中,我们描述了ObjTest的关系。
在[Links]中,我们有与ObjTest链接的对象,与我们在关系列表中的对象ID有关。
我的目标是在lstObj中放入[links]对象提示,但是在lstObj中每个ObjTest的[relations]列表中显示的id(object_ID2)进行过滤。
我做到了,但我想把这个forEach翻译成lambda表达式。我尝试了一些事情,但它不起作用:/
答案 0 :(得分:1)
这应该可行,但是你的foreach代码就像这样。
listObj.ForEach(item => { item.links = item.relations.Join(listObj.ToList(), x => x.object_ID2, y => y.ID, (x, y) => y); });