列表中的Linq sum值是其他列表

时间:2016-10-07 16:07:44

标签: asp.net linq c#-4.0

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;

2 个答案:

答案 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)
                           };