C# LINQ中计数的选择

C# LINQ中计数的选择,c#,.net,linq,count,C#,.net,Linq,Count,我得到了一个SQL Server表,其中包含列ResolvedDate和ResolvedBy 现在我想选择这两列并计算它们的结果,我想我应该这样实现: _dataContext.Activities .Where(a => a.IsResolved && a.ResolvedBy == userId) .Select(a => new { a.ResolvedDate, ***COUNT*** }); 如您所见,计数部分缺失 我想得到在这个Resol

我得到了一个SQL Server表,其中包含列
ResolvedDate
ResolvedBy

现在我想选择这两列并计算它们的结果,我想我应该这样实现:

_dataContext.Activities
    .Where(a => a.IsResolved && a.ResolvedBy == userId)
    .Select(a => new { a.ResolvedDate, ***COUNT*** });
如您所见,计数部分缺失

我想得到在这个ResolvedDate中完成的每一项活动,并对其进行计数

我如何实现这一点

var dates = dataContext.Activities
    .Where(a => a.IsResolved && a.ResolvedBy == userId)
    .Select(a => a.ResolvedDate)
    .ToList();

var count = dates.Count;
如果您只想获取计数,可以通过单独选择计数来加快计算速度:

var count = dataContext.Activities
    .Count(a => a.IsResolved && a.ResolvedBy == userId);

如果您试图按日期计算每个项目,则需要使用
GroupBy

var countsByDate = _dateContext.Activities
                           .Where(a => a.IsResolved && a.ResolvedBy == userId)
                           .GroupBy(a => a.ResolvedDate)
                           .Select(g => new {ResolvedDate = g.Key, Count = g.Count() });

您必须按ResolvedDate对数据进行分组,以获得每天解决的活动数

var dates = from a in dataContext.Activities
            where a.IsResolved && a.ResolvedBy == userId
            group a by a.ResolvedDate into g
            select new { Date = g.Key, Count = g.Count() }
要按天分组(不含小时、分钟等),您可以更改组声明:

var dates = from a in dataContext.Activities
            where a.IsResolved && a.ResolvedBy == userId
            group a by a.ResolvedDate.Date into g
            select new { Date = g.Key, Count = g.Count() }

因此,您希望按resolveddate分组,然后进行计数。我认为OP希望按日期分组,并计数每个组的成员。@SLaks:is
var count=dataContext.Activities.count(a=>a.IsResolved&&a.ResolvedBy==userId)
等于
从[TableName]中选择count(coulmname),其中(IsResolved=1)和(ResolvedBy=@UserID)
?这很有效,谢谢你-只是还不能接受答案:)遗憾的是,这个解决方案有一个负面的东西:06.04.2012 12:00:00 count 1和06.04.2012 12:00:01 count 1以两个结果结束。我该怎么做才能把一整天都分组?@SeToY将第三行a.ResolvedDate.Date改为g,改为
a组
我忘了提到我正在使用EntityFramework 4。因此,LINQ to EntitiesResolved:group a by EntityFunctions中不支持类型成员“Date”。TruncateTime(a.ResolvedDate)“ResolvedDate”可为Null(当活动未解析时)且System.nullable不包含“Date”的定义
var dates = from a in dataContext.Activities
            where a.IsResolved && a.ResolvedBy == userId
            group a by a.ResolvedDate.Date into g
            select new { Date = g.Key, Count = g.Count() }