试图找到一种通过 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 查询。
您可以使用 Concat 扩展方法来联接列表:
var combinedList = list1.Concat(list2);
对于您的具体示例:
var combinedList = A.Concat(foo);
它创建一个 IEnumerable<T>
实例,该实例将按该顺序枚举 list1 和 list2 的元素。