我试图使用LINQ-如何合并两个列表和合并它在C#中没有重复内列出
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();
现在首联将获得由“TABLEID”分组的所有表,但也有少数“innerLinks”从是secondlink丢失。
我需要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是secondlink项目){FirstLink.Add(项目);}' – Sam07
的可能的复制[如何使用LINQ合并两个列表?(http://stackoverflow.com/questions/4872943/how-to-merge-two-lists-using-linq) –