C# 获取列表中出现次数最多的对象:使用 LINQ 查询
可以使用 LINQ 查询来获取某个字段出现最多的对象。
假设有一个名为'Person'的类,其中包含一个名为'Name'的字段,我们想要获取'Name'字段出现最多的对象。
首先,我们可以使用'GroupBy'方法对'Name'字段进行分组,并使用'Count'方法来计算每个分组中的元素数量。然后,我们可以使用'OrderByDescending'方法按照数量进行降序排序,并使用'FirstOrDefault'方法获取出现最多的分组。最后,我们可以使用'Key'属性获取该分组的键,即'Name'字段的值。
下面是示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
class Person
{
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Person> persons = new List<Person>
{
new Person { Name = 'Alice' },
new Person { Name = 'Bob' },
new Person { Name = 'Alice' },
new Person { Name = 'Charlie' },
new Person { Name = 'Bob' },
new Person { Name = 'Bob' },
new Person { Name = 'Dave' },
};
var mostFrequentName = persons
.GroupBy(p => p.Name)
.OrderByDescending(g => g.Count())
.FirstOrDefault()
?.Key;
Console.WriteLine($'Most frequent name: {mostFrequentName}');
}
}
在上面的示例中,'persons'列表包含了一些'Person'对象。我们使用'GroupBy'方法对'Name'字段进行分组,然后使用'Count'方法计算每个分组中元素的数量。接着,我们使用'OrderByDescending'方法按照数量进行降序排序,并使用'FirstOrDefault'方法获取出现最多的分组。最后,我们使用'Key'属性获取该分组的键,即'Name'字段的值。
输出结果为:
Most frequent name: Bob
这表示'Bob'是'Name'字段出现最多的值。
原文地址: https://www.cveoy.top/t/topic/qoF3 著作权归作者所有。请勿转载和采集!