如何使用Linq将列表列表连接到唯一列表中

时间:2015-01-28 13:18:15

标签: c# linq

我有List个对象List long。我需要获取所有long个所有对象并将其加入一个唯一列表。 如何使用System.Linq

执行此操作

这实际上是我的代码(使用此代码,我获得了List List long}

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

3 个答案:

答案 0 :(得分:8)

这会使您的列表变得扁平化,然后对其进行区分

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

答案 1 :(得分:2)

使用selectMany而不是Select

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

答案 2 :(得分:0)

如果您需要加入对象列表或者需要将所有对象联合起来,请不要使用它,但是对于加入,您可以使用:

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