我有List<List>
。我希望从中获得一个列表。
List<int> from List<List<SomeClass>()
for循环是一个显而易见的解决方案,但我希望从性能的角度来看更好更好的东西。
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
答案 0 :(得分:4)
试试这个:
var list = listOfLists.SelectMany(x => x).ToList();
我不确定您追加的是什么额外信息。您对该问题所做的编辑几乎是完整的代码。
你应该写:
List<int> Current =
ValueLists
.SelectMany(u => u.Select(v => v.EmployeeID))
.ToList();
这可以写成:
var query =
from u in ValueLists
from v in u
select v.EmployeeID;
List<int> Current = query.ToList();
也许这会更清晰。
答案 1 :(得分:0)
仍然没有得到答案,请参阅编辑问题了解更多信息 细节和实际情况:
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
您的方法不起作用,因为IEnumerable<int>
不是List<int>
。因此,最后需要ToList()
。
这应该有效:
List<int> Current = ValueLists.SelectMany(u => u.Select(e => e.EmployeeID)).ToList();
答案 2 :(得分:0)
怎么样:
var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();