将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();