我有一个List<List>
. 我想从中获得一个列表。
List<int> from List<List<SomeClass>()
For 循环是一个明显的解决方案,但从性能的角度来看,我想要更好和更优雅的东西。
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
尝试这个:
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();
也许这会更清楚。
仍然没有得到答案,请参阅编辑后的问题以获取更多详细信息和实际情况:
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
您的方法不起作用,因为 anIEnumerable<int>
不是List<int>
. 因此你需要ToList()
在最后。
这应该有效:
List<int> Current = ValueLists.SelectMany(u => u.Select(e => e.EmployeeID)).ToList();
关于什么:
var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();