我有一个List<List>
。我想从中获取单个列表。从收藏品收藏
List<int> from List<List<SomeClass>()
For循环是一个显而易见的解决方案,但我希望从性能角度来看更好,更高效。
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));
我有一个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();
也许,让更多的清晰度。
还没有得到答案,请参阅editted问题更多 细节和实际情况:
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();
什么:
var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();
性能方面几乎一样快,一个for循环。但在句法上更让人高兴。 – jessehouwing
@Enigmativity仍然没有得到答案,请参阅editted问题的更多细节和实际scanraio。 – MegaMind