在工作中程序需要对查询出来数据List进行进一步处理时,Linq的能力就体现出来了。例如以下一段代码,它的意思是对list按照ZG_ID, ZG_IDNAME, ZG_NO, CARD_NO进行分组求和后赋值到disZg,这个变量的数据组成就是select new{}中的内容,接下来就可以对disZg进行进一步分析操作了。
var disZg = from tt in list
where tt.ZG_ID > 0
group tt by new { tt.ZG_ID, tt.ZG_IDNAME, tt.ZG_NO, tt.CARD_NO }
into qq
select new
{
ZG_ID = qq.Key.ZG_ID,
ZG_IDNAME = qq.Key.ZG_IDNAME,
ZG_NO = qq.Key.ZG_NO,
CARD_NO = qq.Key.CARD_NO,
DX_AMOUNT = qq.Sum(p => p.DX_AMOUNT),
NBJF_AMOUNT = qq.Sum(p => p.NBJF_AMOUNT),
ZG_TYPE_IDNAME = qq.Max(p => p.ZG_TYPE_IDNAME),
POST_ID = qq.Max(p => p.POST_ID),
DEPT_IDNAME = qq.Max(p => p.DEPT_IDNAME)
};