可以使用 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字段出现最多的值

C# list 获取某个字段出现最多的对象

原文地址: https://www.cveoy.top/t/topic/iIcI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录