首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用lambda来使用一个组?

如何用lambda来使用一个组?
EN

Stack Overflow用户
提问于 2014-01-20 16:47:41
回答 1查看 57关注 0票数 0

我试图使用lambda从表/结果集中获取数据,并生成包含其他对象列表的对象,我有一个元素列表,例如:

代码语言:javascript
复制
continent | country | state

europe    | france  | paris
europe    | france  | rouen
europe    | spain   | madrid
europe    | italy   | milan
america   | usa     | ohio
america   | usa     | kansas
america   | usa     | texas
america   | usa     | iowa
america   | mexico  | colima
america   | mexico  | tabasco
africa    | niger   | maradi
africa    | niger   | tahoua
africa    | niger   | niamey  

我需要把它按大陆和国家分组,以便生成一个有对象列表的对象列表.类似于:

  • 欧洲
    • 法国
      • 巴黎
      • 鲁昂

代码语言:javascript
复制
- spain 
    - madrid

代码语言:javascript
复制
- italy 
    - milan

  • 美国
    • 美国
      • 俄亥俄
      • 堪萨斯
      • 得克萨斯州
      • 爱荷华州

代码语言:javascript
复制
- mexico 
    - colima
    - tabasco

  • 非洲
    • 尼日尔
      • 马拉迪
      • tahoua
      • 尼亚美

我所拥有的是:

代码语言:javascript
复制
   DataTable.GroupBy(g => new
      {
         g.continent,
         g.country
      })
   .Select(s => s.First()).ToList().ForEach(n =>
      {
         _continentals.Add(new Continent 
         {
            name = n.continent,
            countries = new List<Country> 
            {
               new Country
               {
                  name = n.country,
                  states = new List<State> 
                  {
                     new State
                     {
                        name = n.state
                     }
                  }
               }
            }
         }
      }

但是它不起作用,我也不知道如何修复它(它没有按照正确的顺序生成/分组元素)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-20 16:50:07

您需要按大陆分组,然后将其中的每一组按国家分组,而不是根据对大陆/国家进行一次分组:

代码语言:javascript
复制
var query = DataTable.GroupBy(item => item.continent,
    (key, group) => new
    {
        Continent = key,
        Countries = group.GroupBy(item => item.country)
    });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21239603

复制
相关文章

相似问题

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