c# - 如何使用 LINQ 获取列表中属性的平均值?

标签 c# linq

我有这个对象:

public class BtnCountViews
{
    public BtnCountViews()
    {
    }
    public int DayOfYear { get; set; }
    public int Month { get; set; }
    public int Year { get; set; }
    public int BtnCount { get; set; }
    public int Views { get; set; }
}

我想做的是从这些对象的列表中获取 Views 的平均值,其中 Month = 5。

这是我获取列表数据的地方:

  public static List<BtnCountViews> btnCountViewsList = db2.Query<BtnCountViews>(sql);

最佳答案

尝试类似的方法;

var avg = btnCountViewsList.Where(x => x.Month == 5).Select(x => x.Views).DefaultIfEmpty(0).Average();

另外我建议您使用 DefaultIfEmpty 来处理可能的空集。否则如果 btnCountViewsList 为空,则抛出异常。

关于c# - 如何使用 LINQ 获取列表中属性的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47766216/

相关文章:

c# - 我必须做什么才能访问我自己的公共(public)方法?

Linqpad 性能与 Sql Management Studio

LINQ POI 邻近度

C# 相当于 VB LINQ 查询

c# - Npgsql:不支持时间戳的旧浮点表示

c# DateTime.Equals() 无法正常工作

c# - 无法加载 DLL 'Microsoft.WITDataSTore32.dll'

c# - 字符串中的 URL 被撇号损坏

c# - 在 DataTable 中按日期时间对字符串列进行排序

c# - 检查 linq 新对象中的空字段