【发布时间】:2016-11-17 15:23:21
【问题描述】:
我正在尝试使用 LINQ 合并两个通用列表-
List<LinkedTable> FirstLink
List<LinkedTable> SecondLink
如下面的类所示,我的泛型列表本身就有一个泛型列表。
public class LinkedTable
{
public string TableId { get; set; }
public string TableName { get; set; }
public List<Link> innerLinks { get; set; }
}
public class Link
{
public Boolean linkFlag;
public string Descriptor { get; set; }
public string RecordId { get; set; }
}
当我合并这两个列表时,新列表不包含 FirstLink 和 SecondLink 的“innerLinks”记录。 我试过以下代码:
FirstLink = FirstLink.Concat(SecondLink)
.GroupBy(e1 => e1.TableId)
.Select(e2 => e2.FirstOrDefault())
.ToList();
现在 FirstLink 将获取按“TableId”分组的所有表,但缺少来自 SecondLink 的一些“innerLinks”。
我需要新合并列表中 FirstLink 和 SecondLink 中的“innerLinks”列表而不重复。
例子:
FirstLink[0].innerLinks[0]
.innerLinks[1]
.innerLinks[2]
SecondLink[0].innerLinks[1]
.innerLinks[2]
.innerLinks[3]
合并的链接应该是:
FirstLink[0].innerLinks[0]
.innerLinks[1]
.innerLinks[2]
.innerLinks[3]
【问题讨论】:
-
你试过类似
foreach (var item in SecondLink){FirstLink.Add(item);}
标签: c# linq generic-list