我正在尝试编写一个Linq
语句,允许我返回一个不同的
obj1 objects that contain obj2.sID == ASpecified# or obj3.sID == ASpecified#
的。
我试图包含我的实体图的一个例子,希望我的问题更有意义,但是我没有足够的声誉。所以我想我只需要在代码中完成它。以下是我的目标。
public class obj1
{
public int obj1_id { get; set; }
public String obj1Prop1 { get; set; }
public String obj1Prop2 { get; set; }
public List<obj2> obj2List { get; set; }
public List<obj3> obj3List { get; set; }
}
public class obj2
{
public int obj2_id { get; set; }
public String obj2Prop1 { get; set; }
public String obj2Prop2 { get; set; }
public Int32 sID { get; set; }
}
public class obj3
{
public int obj3_id { get; set; }
public String obj3Prop1 { get; set; }
public String obj3Prop2 { get; set; }
public Int32 sID { get; set; }
}
我对简单的linq语句非常熟练,但是我对这个问题有点不合时宜。我想我需要通过 sID 加入obj3
和obj2
,但我不确定。
任何帮助或指示都将不胜感激。
答案 0 :(得分:2)
不需要加入。
请尝试以下代码段
var o1 = new List<obj1>(); // Add items to list
var specificId = "123"; // specific id
var listObj1 = o1.Where(o => o.obj2List.Any(o2 => o2.sID == specificId) ||
o.obj3List.Any(o3 => o3.sID == specificId)).ToList();