You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 使用GroupBy查询分组内ID重复且Name非空数据出错如何解决

错误原因

你当前的查询逻辑只判断了整个Group分组的总条数大于1,没有对Group内的ID做重复校验,所以GroupB里只出现1次的id=4的记录也被一并返回了。

修正方案

先过滤Name不为空的记录,再按Group + id作为联合键分组,筛选出分组内条数大于1的组,最后展开所有符合条件的分组元素即可,修正后的代码如下:

var query1 = group
    .Where(s => s.Name != "")
    .GroupBy(x => new {x.Group, x.id}) // 按分组+ID联合分组,统计同一个分组内相同ID的出现次数
    .Where(g => g.Count() > 1) // 只保留出现次数大于1的分组
    .SelectMany(y => y)
    .ToList();
Console.WriteLine("output\n" + string.Join("\n", query1));

运行后输出就会符合你的预期,仅返回GroupB内出现2次的id=5的两条记录。


内容的提问来源于stack exchange,提问作者Syntax_MM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:45:03