c# linq groupby是默认去掉重复行吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# linq groupby是默认去掉重复行吗相关的知识,希望对你有一定的参考价值。
groupby 是分组统计用的,不是去掉重复行的!!会根据你选择的字段不同而发生不同的结果!!但是喃,你可以当作是去掉重复行用,只是保证你的查询数据集结果显示上没重复
比如
字段A,字段B,字段C
1 2 3
1 3 4
2 1 3
3 2 1
select 字段A FROM ... GROUPBY 字段A
结果就是
1
2
3
select 字段A FROM ... GROUPBY 字段B
结果就是
1
1
2
3
所以要去重复的话,那么你要谨慎了,GROUPBY 后面的字段必须要在你的查询字段中出现,不然就会有问题的!! 参考技术A 这个是分组和去掉重复行有半毛钱关系?追问
不知道就是不知道,别装,正面回答好吗?我既然这么问肯定是遇到问题了
追答那你把你遇到的问题说出来啥
如何在linq C#中使用group by并获取记录列表[重复]
【中文标题】如何在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();
【讨论】:
以上是关于c# linq groupby是默认去掉重复行吗的主要内容,如果未能解决你的问题,请参考以下文章
如何在linq C#中使用group by并获取记录列表[重复]