Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq查找重复行_C#_Linq - Fatal编程技术网

C# 使用Linq查找重复行

C# 使用Linq查找重复行,c#,linq,C#,Linq,人 Name City Joe Houston Jerry London Alex Houston Jerry London 如何使用LINQ like返回重复行 Sql SELECT name, city, count(*) FROM collection GROUP BY name,city HAVING count(*) > 1 我试过了 var qry = from m

Name        City

Joe         Houston   
Jerry       London    
Alex        Houston   
Jerry       London    
如何使用LINQ like返回重复行

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 };            

您需要的是where,而不是select:

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(m => new { m.city, m.name })
                               .Where(a => a.Count() > 1)
                               .SelectMany(a => a.ToList());

嗨,约翰,我想问一个问题。是否可以选择重复的行键和值?