0

我有一个List<List>. 我想从中获得一个列表。

List<int> from List<List<SomeClass>()

For 循环是一个明显的解决方案,但从性能的角度来看,我想要更好和更优雅的东西。

List<List<Employee>> ValueLists;

List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
4

3 回答 3

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

也许这会更清楚。

于 2012-07-02T07:20:17.863 回答
0

仍然没有得到答案,请参阅编辑后的问题以获取更多详细信息和实际情况:

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();
于 2012-07-02T07:32:36.693 回答
0

关于什么:

var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();
于 2012-07-02T08:11:15.003 回答