可以使用 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# 获取列表中出现次数最多的对象:使用 LINQ 查询

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

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