首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从集合的集合中创建集合

从集合的集合中创建集合
EN

Stack Overflow用户
提问于 2012-07-02 15:19:18
回答 3查看 101关注 0票数 0

我有一台List<List>。我想从中得到一个单独的列表。

代码语言:javascript
复制
List<int> from List<List<SomeClass>()

For loop是一个显而易见的解决方案,但从性能的角度来看,我想要更好、更合格的解决方案。

代码语言:javascript
复制
List<List<Employee>> ValueLists;

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

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-02 15:20:18

试试这个:

代码语言:javascript
复制
var list = listOfLists.SelectMany(x => x).ToList();

我不确定你到底想要什么额外的信息。您对问题所做的编辑几乎是完整的代码。

你应该写下:

代码语言:javascript
复制
List<int> Current =
    ValueLists
        .SelectMany(u => u.Select(v => v.EmployeeID))
        .ToList();

这可以写成这样:

代码语言:javascript
复制
var query =
    from u in ValueLists
    from v in u
    select v.EmployeeID;

List<int> Current = query.ToList();

也许这会让你更加清晰。

票数 4
EN

Stack Overflow用户

发布于 2012-07-02 15:32:37

仍然没有得到答案,请查看编辑后的问题了解更多详细信息和实际场景:

代码语言:javascript
复制
List<List<Employee>> ValueLists;
List<int> Current= ValueLists.SelectMany(u=>u.Select(v=>v.EmployeeID));

您的方法不起作用,因为IEnumerable<int>不是List<int>。因此,您需要在最后使用ToList()

这应该是可行的:

代码语言:javascript
复制
List<int> Current = ValueLists.SelectMany(u => u.Select(e => e.EmployeeID)).ToList();

  • Reimplementing LINQ to Objects: Part 9 - SelectMany
  • Enumerable.SelectMany
票数 0
EN

Stack Overflow用户

发布于 2012-07-02 16:11:15

下面是什么:

代码语言:javascript
复制
var list = listOfLists.SelectMany(x => x.EmployeeID).ToList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11289271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档