linq + groupby-在选择查询中添加字段 [英] linq + groupby - add fields in select query

查看:330
本文介绍了linq + groupby-在选择查询中添加字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:我们可以对LINQ中的多个字段进行分组吗? 当前-我有linq这样的东西

q = q.GroupBy(c => c.Id)
     .Select(g => new View
                  {
                      Id = g.Key,
                      ENAME= string.Join(",", g.Select(x => x.CaseApprover).ToList())
                  });

我想用多个字段分组,例如

q = q.GroupBy(c => c.Id, c.name,c.age,c.dob) 

还要如何将它们放入选择查询中?这样我也将在选择查询中获得新添加的字段.

解决方案

尝试一下:

q = q.GroupBy(c => new { c.Id, c.name,c.age,c.dob })
    .Select(g => new
    {
        Id = g.Key.Id,
        ENAME= string.Join(",", g.Select(x => x.CaseApprover).ToList()),
        Name = g.Key.name,
        Age = g.Key.age,
        Dob = g.Key.dob,
    });

这将返回一个匿名类型,如果您想在View类中添加这些字段,只需添加它们即可.

question : can we made groupby to multiple fields in LINQ Currently - i have linq something like this

q = q.GroupBy(c => c.Id)
     .Select(g => new View
                  {
                      Id = g.Key,
                      ENAME= string.Join(",", g.Select(x => x.CaseApprover).ToList())
                  });

i wanted to group by with multiple fields something like

q = q.GroupBy(c => c.Id, c.name,c.age,c.dob) 

also how to put them in select query? such that i will get the newly added fields in select query also.

解决方案

Try this:

q = q.GroupBy(c => new { c.Id, c.name,c.age,c.dob })
    .Select(g => new
    {
        Id = g.Key.Id,
        ENAME= string.Join(",", g.Select(x => x.CaseApprover).ToList()),
        Name = g.Key.name,
        Age = g.Key.age,
        Dob = g.Key.dob,
    });

This will return an anonymous type, if you want these fields in your View class, just add them.

这篇关于linq + groupby-在选择查询中添加字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆