试图找到一种通过LINQ或PLINQ将两个列表与嵌套列表结合在一起的方法。
我有List A
,List B
,并希望将其父级和子级属性与这两者结合。
我尝试了以下
List<data> result = A.Where(o=>foo.Any(x=>x.headerid=o.headerid)) &&
o.details.Any(y=>foo.Any(z=>z.headerid=o.headerid && z.detailid=y.detailid)).ToList();
但不确定这样做是否正确。在此,foo列表将被扫描两次。我想要一个联接查询来解决此问题,无论是lambda还是联接查询。最好加入查询。
class filterclass
{
public string headerid;
public string detailid;
}
class data
{
public string headerid;
public string headername;
public List<Detail> details;
//...
}
class detail
{
public string detailid;
public string detailname;
//...
}
List<data> A = new List<data>();
List<filterclass> foo = new List<filterclass>();
现在我需要将A和foo与以下字段结合在一起
A.headerid = foo.headerid
和A.detail.detailid = foo.detailid
。
嵌套列表是A.detail
,但我不确定如何将其加入。不知道在这种情况下FirstOrDefault
或All
是否可以工作。也不想循环
感谢您的任何帮助,并在此先致谢。
我需要一个LINQ JOIN查询。
答案 0 :(得分:0)
您可以使用Concat扩展方法来连接列表:
var combinedList = list1.Concat(list2);
对于您的具体示例:
var combinedList = A.Concat(foo);
它将创建一个IEnumerable<T>
实例,该实例将依次枚举 list1 和 list2 的元素。