Goodevening我尝试在名为包含另一个职位列表的人的雇主名单上进行LINQ查询。我想总结一下工作的int值。我试试这段代码
public class Employe
{
public int id { get; set; }
public string name { get; set; }
public List<Job> Jobs{ get; set; }
}
public class Job
{
public int id { get; set; }
public int int1 { get; set; }
public int int2 { get; set; }
}
var dati = from p in people
from j in p.Jobs
group j by j.id into g
select new
{
idp = p.id,
name = p.name,
value1 = g.sum(m => m.int1),
value2 = g.sum(m => m.int1)
};
它不起作用它给我错误&#34; p不存在&#34;
答案 0 :(得分:0)
您按j.id
进行分组,因此在完成分组后,p
不再存在。
如果不知道你真正想要分组的内容,就很难说出你要做的事情。
此外,您的错误是The name 'p' does not exist in the current context
,这是编译器错误,而不是运行时异常。当您在问题中加入错误时,请确保其准确而详细。
答案 1 :(得分:0)
在 p 和 g 上创建您的论坛只有这样您才能访问这两个对象的值。
var dati = from p in people
from j in p.Jobs
group new {j,p} by j.id into g
select new
{
idp = g.FirstOrDefault().p.id,
name = g.FirstOrDefault().p.name,
value1 = g.Sum(m => m.j.int1),
value2 = g.Sum(m => m.j.int1)
};