使用嵌套列表联接两个列表



试图找到一种通过 LINQ 或 PLINQ 连接两个列表以及嵌套列表的方法。

我有List AList 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.headeridA.detail.detailid = foo.detailid.

事情是A.detail是嵌套列表,我不确定如何加入它。 不确定在这种情况下,FirstOrDefaultAll是否有效。也不想循环

任何帮助,非常感谢,提前感谢。

我需要有一个 LINQ JOIN 查询。

您可以使用 Concat 扩展方法来联接列表:

var combinedList = list1.Concat(list2);

对于您的具体示例:

var combinedList = A.Concat(foo);

它创建一个 IEnumerable<T> 实例,该实例将按该顺序枚举 list1list2 的元素。

最新更新