我有一个包含日期的对象 MyObject。 我有以下查询,其中 TheMonth 和 TheYear 是参数:
var MyQuery = from a in MyModelDC.MyTable
where a.Month == TheMonth
where a.Year == TheYear
select new MyObject
{
var1 = a.Day,
var2 = (from b in MyModel.MyTable
where b.Month == a.Month
where b.Year == a.Year
select b.Identity).Count()
};
我想对结果进行分组,以便每天只出现一次。 Var 2 是一个计数,目前计数行对于每次出现的 Identity 都会重复,而不是每天都是唯一的。
谢谢。
最佳答案
如果我正确理解您的要求,我认为这会满足您的要求:
var myQuery = from date in MyModelDC.MyTable
where date.Month == TheMonth && date.Year == TheYear
group date by date.Day into dayGroup
select new
{
Day = dayGroup.Key,
Count = dayGroup.Count()
};
在这里,我们首先按每个项目所指的日期对其进行分组,然后对组中的每个项目进行计数,以便仅包含该组特定日期的项目。
更新
要使用 MyObject 作为输出,您可以执行以下操作:
var myQuery = from date in MyModelDC.MyTable
where date.Month == TheMonth && date.Year == TheYear
group date by date.Day into dayGroup
select new MyObject
{
var1 = dayGroup.Key,
var2 = dayGroup.Count()
};
关于c# - linq group by 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741190/