在模型列表中获取最常见的字符串

本文关键字:常见 字符串 获取 模型 列表 | 更新日期: 2023-09-27 18:01:50

我想使用Linq从模型列表中获得最常见的字符串,但我真的不知道如何。

下面是一些示例代码:
public ModelClass {
    public string name { get; set; }
    public int num { get; set; }
}

想象一个巨大的ModelClass列表存储在数据库

// in some controller
var model = from s in _db.SomeClass
            select s;
string mostCommonName = ???????

我如何使用linq从这个列表中找到最常见的名字?

在模型列表中获取最常见的字符串

您可以使用GroupBy()来帮助查找具有相同值的字符串

var mostCommonName = _db.SomeClass
    .GroupBy(x => x.Name)
    .Select(x => new 
    { 
        Name = x.Key,
        Count = x.Count()
    })  
    .OrderByDescending(x => x.Count)
    .Select(x => x.Name)
    .First();
    var query = from n in  _db.SomeClass
                group n by n.name into grouped
                select new
                {
                    name = grouped.First().name,
                    count = grouped.Count(),
                } into result
                orderby result.count descending
                select result;
    string mostCommonName = query.First().name;