c# - Linq 从多个 where 条件中获取计数
问题描述
我想要一些非常简单的东西,我想从记录列表中找到特定日期的记录(记录可以多次具有相同的日期)并具有特定值,
并计算这些值中有多少存在。到目前为止,我正在使用它,但我不确定它是否是最好的方法
这里是记录
public class Records
{
public DateTime Date { get; set; }
public int Record { get; set; }
}
这是代码
List<Records> records = GetRecords();
var distinctDates = records.Select(x => x.Date).Distinct().ToList();
for (int i = 0; i < distinctDates.Count(); i++)
{
statistics.Rows.Add(new object[] { distinctDates[i].ToString("MM/dd/yyyy HH:mm"),
records.Select(x => x).Where(d => d.Date == distinctDates[i]).Count(x => x.Record == -1).ToString()});
}
我想知道特定日期的出现和记录中特定值的总和所以如果数据库有这些值:
1980 年 11 月 11 日,3
1980 年 11 月 11 日,3
1980 年 12 月 11 日,2
当我将寻求条件 11/11/1980 和 3 的计数时,我想得到结果 2
解决方案
var result = records.GroupBy(x => x.Date)
.Select(x => new { Date = x.Key, Count = x.Count() });
是你想要的
结果现在将有一个日期和计数列表。
如果你想要一个特定的值,那么像这样:
var result = records.Where(x => x.Record == -1).
.GroupBy(x => x.Date)
.Select(x => new { Date = x.Key, Count = x.Count() });
要按日期而不是日期时间分组,请使用 GroupBy 语句中对象的日期属性
.GroupBy(x => x.Date.Date)
推荐阅读
- python - NLTK 如何查找全名而不是部分名称
- php - CodeIgniter 3.1.9 - 无法识别登录表单验证的问题
- react-native - React Native props.value 未定义
- android - java.lang.IllegalArgumentException:没有为片段找到 id 0x7f07007c 的视图
- c# - C# - Excel 导出列表
- css - 导航栏位置
- java - 如果“if”条件为假,则不执行其他部分
- linux - 更改 chown 主文件夹后无法连接到 SSH 服务器 Google Compute Engine
- xcode - 没有为该团队找到具有 App Store Connect 访问权限的帐户
- c# - xamarin.forms - 关闭应用程序后清除 Application.Current.Properties