【发布时间】:2015-01-13 12:42:15
【问题描述】:
我有一个如下的 linq 查询,
var result =
from Record in DBContext.GetAll().
group new { Record.Filed1, Record.Field2} by Record.Field3
into newGroup
select new
{
BodyRegion = newGroup.Key,
ByScanner =
from exam in newGroup
group exam.MaxValue by exam.Model
into myGroup
select myGroup,
ByExam =
from exam in newGroup
group exam.MaxValue by exam.Protocol
into myGroup2
select myGroup2
};
然后我遍历它们,
foreach (var rec in result)
{
foreach (var byScanner in rec.ByScanner)
{
ProcessResult(byScanner.Key, byScanner.ToList());
}
foreach (var byExam in rec.ByExam )
{
ProcessResult(byExam.Key, byExam.ToList());
}
}
一切正常。 但是我想将 Linq 查询(第一个代码 sn-p)移动到一个函数中,该函数的返回类型应该是什么? 函数的返回类型不能是 var。如果我给 IEnumerable 那么在迭代时我无法访问 rec.ByScanner, rec.ByExam 因为 Object 不包含它们. 如何解决这个问题?
编辑: 我尝试创建一个新类并填充它们。但分组属性 byScanner.Key, byScanner.ToList() 不可访问。如何解决?
【问题讨论】:
-
创建一个类并填充它,而不是获取
anonymous type。 -
请看 EDIT 部分,我试着做你的解决方案。然后我就遇到了上述问题。