Linq 返回类型转换
本文关键字:类型转换 返回 Linq | 更新日期: 2023-09-27 18:37:08
我有一个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查询(第一个代码片段)移动到一个函数中,函数的返回类型应该是什么?函数的返回类型不能是变量。如果我给 IEnumerable,那么在迭代时我无法访问 rec。ByScanner, rec.ByExam,因为对象不包含它们。如何解决此问题?
编辑:我尝试创建一个新类并填充它们。但按扫描仪对属性进行分组。密钥,由扫描仪。ToList() 不可访问。如何解决这个问题?
您
正在使用匿名类型。这些不应传递方法。
您可以做的一件事是创建一个(我们称之为"记录")具有属性的类 BodyRegion
、 ByScanner
和 ByExam
并传递IEnumerable<Record>
。