C# 如何计算linq中的重复数?

C# 如何计算linq中的重复数?,c#,asp.net,linq,C#,Asp.net,Linq,可能重复: 你知道如何计算linq中的副本吗。假设我有一个学生对象列表 我想在哪里找到被称为“约翰”的学生人数 您可以使用: 您也可以显示具有重复项的: var dups = students.GroupBy(x => x) .Where(g => g.Count() > 1) .Select(g => g.Key); foreach (var student in dups) { C

可能重复:

你知道如何计算linq中的副本吗。假设我有一个学生对象列表 我想在哪里找到被称为“约翰”的学生人数

您可以使用:

您也可以显示具有重复项的:

var dups = students.GroupBy(x => x)
                   .Where(g => g.Count() > 1)
                   .Select(g => g.Key);

foreach (var student in dups)
{
    Console.WriteLine("Duplicate: {0}", student);
}
返回:

John: 2
Mary: 1
Duplicate: John
注意:您需要更改
GroupBy(x=>x)
当然取决于您的
Student
对象是什么。在本例中,它只是一个
字符串

var students=newlist{“John”、“Mary”、“John”};
var students = new List<string> { "John", "Mary", "John" };
var duplicates = students.GroupBy(x => x)
                         .Select(x => new { Name = x.Key, Count = x.Count() }); 
var duplicates=students.GroupBy(x=>x) .Select(x=>new{Name=x.Key,Count=x.Count()});
var students = new List<string> { "John", "Mary", "John" };
var duplicates = students.GroupBy(x => x)
                         .Select(x => new { Name = x.Key, Count = x.Count() });