C#Linq找到重复的行
人
Name City Joe Houston Jerry London Alex Houston Jerry London
如何使用LINQ返回重复行
SQL
SELECT name, city, count(*) FROM collection GROUP BY name,city HAVING count(*) > 1
我试了一下
var qry = from m in context.Collections group m by new { m.city, m.name } into grp select new { rp = grp.Count() > 2 };
你需要一个地方,而不是一个选择:
var qry = from m in context.Collections group m by new { m.city, m.name } into grp where grp.Count() > 1 select grp.Key;
基于@Jon Skeet的回答,使用“ 单线 ”替代方案,返回重复值,而不仅仅是键:
var duplicates = db.Collections.GroupBy(a => new { m.city, m.name }) .Where(a => a.Count() > 1) .SelectMany(a => a.ToList());