如何在linq C#中使用group by并获取记录列表[重复]

Posted

技术标签:

【中文标题】如何在linq C#中使用group by并获取记录列表[重复]【英文标题】:how to use group by in linq C# and fetch the list of records [duplicate] 【发布时间】:2015-03-14 21:20:54 【问题描述】:

我有 2 个表,我根据某些要求进行了一些连接以返回记录列表。 我可以通过查询为我的 requiremnet 编写一个组并检查记录,但我在 Linq 查询中需要相同的内容。 我的 sql 查询是:

select 
   MiscServiceDesc, 
   sum(PaymentAmount),
   count(PaymentAmount) 
from 
   MiscTransaction MT 
join MiscService MS 
   on MT.MiscServiceID = MS.MiscServiceID 
group by 
  MiscServiceDesc

其中 MiscTransaction 和 MiscService 是我的两个表。

有什么帮助吗? 提前致谢

【问题讨论】:

我需要加入时。 @Santosh 写法一样,加入或不加入。 也可以查看这个帖子:***.com/questions/27730575/… 【参考方案1】:

试试这个。我不知道 MiscServiceDesc、PaymentAmount、PaymentAmount 哪些列在 MiscTransaction 表或 MiscService 表中,但您可以根据需要适当更改代码。

var result = (from mt in MiscTransaction 
               join ms in MiscService on mt.MiscServiceID equals ms.MiscServiceID
               select new ms.MiscServiceDesc, mt.PaymentAmount into lst
               group lst by lst.MiscServiceDesc into gr
               select new MiscServiceDesc  = gr.Key, Summ = gr.Sum(c=>c.PaymentAmount), Count = gr.Count()
       ).ToList();

【讨论】:

以上是关于如何在linq C#中使用group by并获取记录列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# Linq group by 和 group by into 运用实例

Linq Group by 并获取返回所有列的特定字符串规则的所有值

.NET(C#) System.Linq中实现多列group by(分组)的示例代码

C# Linq Group By 在多列上[重复]

C# Linq to SQL — Group by

c# Linq select join on select group by