linq group by with c#
本文关键字:with by group linq | 更新日期: 2023-09-27 18:25:48
我在Models类中创建了一个方法,通过以下代码从数据库中调用一组数据:
public IQueryable result(string username, string exam)
{
return (from result in idb.User_Exam_Question
where (result.User_Tbl_email == username && result.Exam_Tbl_ID == Convert.ToInt32(exam))
group result by result.category_tbl_ID into cat
select cat);
}
但我需要计算每个类别的行数。我应该如何更改上面的代码以获得我想要的输出。
非常感谢
如果要返回计数,只需添加.Count()
:
public int result(string username, string exam)
{
return (from result in idb.User_Exam_Question
where (result.User_Tbl_email == username && result.Exam_Tbl_ID == Convert.ToInt32(exam))
group result by result.category_tbl_ID into cat
select cat).Count();
}
或者,如果你想把每个子结果作为一个计数,你可以这样做:
public IQueryable result(string username, string exam)
{
return from result in idb.User_Exam_Question
where (result.User_Tbl_email == username && result.Exam_Tbl_ID == Convert.ToInt32(exam))
group result by result.category_tbl_ID into cat
select new
{
CatCount = cat.Count()
}
}
然后你可以做这样的事情:
result("username", "exam")[0].CatCount;
// returns the count of the first result of the query.
您可以直接从您的猫那里获得计数!
public IQueryable result(string username, string exam)
{
return (from result in idb.User_Exam_Question
where (result.User_Tbl_email == username && result.Exam_Tbl_ID == Convert.ToInt32(exam))
group result by result.category_tbl_ID into cat
select new { Group = cat , Count = cat.Count() } );
}