将List <List >转换为C#中的List

我有一个List<List> 。 我想将它转换为List ,其中每个int都是唯一的。 我想知道是否有人使用LINQ有一个优雅的解决方案。

我希望能够使用Union方法,但每次都会创建一个新的List 。 所以我想避免做这样的事情:

 List allInts = new List(); foreach(List list in listOfLists) allInts = new List(allInts.Union(list)); 

有什么建议?

谢谢!

 List> l = new List>(); l.Add(new List { 1, 2, 3, 4, 5, 6}); l.Add(new List { 4, 5, 6, 7, 8, 9 }); l.Add(new List { 8, 9, 10, 11, 12, 13 }); var result = (from e in l from e2 in e select e2).Distinct(); 

更新09.2013

但是现在我真的把它写成了

 var result2 = l.SelectMany(i => i).Distinct(); 
 List result = listOfLists .SelectMany(list => list) .Distinct() .ToList(); 

怎么样:

 HashSet set = new HashSet(); foreach (List list in listOfLists) { set.UnionWith(list); } return set.ToList();