C# list 获取某个字段出现最多的对象
可以使用 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/iIcI 著作权归作者所有。请勿转载和采集!