[英]Linq return type conversion
我有一個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查詢(第一個代碼段)移到一個函數中,該函數的返回類型應該是什么? 函數的返回類型不能為var 。 如果我給IEnumerable <Object>,則在迭代時無法訪問rec.ByScanner,rec.ByExam,因為Object不包含它們。 如何解決這個問題?
編輯:我嘗試通過創建一個新類並在其中填充它們。 但是通過Scanner對屬性進行分組。 密鑰 ,byScanner。 ToList()無法訪問。 如何解決?
您正在使用匿名類型 。 這些不應在方法周圍傳遞。
您可以做的一件事是創建一個具有屬性BodyRegion
, ByScanner
和ByExam
的類(我們稱之為“ Record”),並傳遞IEnumerable<Record>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.