C# 如何使用Linq在唯一列表中加入列表列表

C# 如何使用Linq在唯一列表中加入列表列表,c#,linq,C#,Linq,我有一个列表,对象的列表为长。我需要获取所有对象的所有long,并将其加入到唯一列表中。 如何使用System.Linq执行此操作 这实际上是我的代码(使用此代码,我得到一个列表的列表的长的) 这会使你的列表变平,然后在上面做一个明显的调整 LIST1.SelectMany(a => a.LIST2.Select(b => b.Id)).Distinct(); 使用selectMany而不是Select var result = LIST1.SelectMany(x => x

我有一个
列表
,对象的
列表
。我需要获取所有对象的所有
long
,并将其加入到唯一列表中。 如何使用
System.Linq
执行此操作

这实际上是我的代码(使用此代码,我得到一个
列表
列表
长的


这会使你的列表变平,然后在上面做一个明显的调整

LIST1.SelectMany(a => a.LIST2.Select(b => b.Id)).Distinct();

使用selectMany而不是Select

var result = LIST1.SelectMany(x => x.LIST2.Select(y => y.Id)).Tolist();

如果您需要合并对象列表或需要合并所有对象,请不要获取它,但对于“合并”,您可以使用:

var result = (from Item1 in LIST1
             join Item2 in LIST2
             on Item1.Id equals Item2.Id
             select new { Item1, Item2 }).ToList();

SelectMany
是您所需要的。的可能重复项
var result = (from Item1 in LIST1
             join Item2 in LIST2
             on Item1.Id equals Item2.Id
             select new { Item1, Item2 }).ToList();