2016-02-27 56 views
2

我试图输出数据是这样的:获取JSON数组从C#中的LINQ

[[...],[...],[...],[...]] 

但我的查询给了我这样的结果:

[{...},{...},{...},{...}] 

这里是我的查询:

var result = (from c in displayedCompanies 
          group c by new { c.CodigoDeVenta } into s 
          select new{ 
          ID = Convert.ToString(i++), 
          s.Key.CodigoDeVenta, 
          TotalInv = s.Sum(x => x.Inventario) 
          }).ToArray(); 

我试着像下面的一些选项,但它是错误的:

var result = (from c in displayedCompanies 
          group c by new { c.CodigoDeVenta } into s 
          select new [] { 
          ID = Convert.ToString(i++), 
          s.Key.CodigoDeVenta, 
          TotalInv = s.Sum(x => x.Inventario) 
          }).ToArray(); 

请注意,差异是[]select new []。在我实现了“group by”之前,我曾经有过一个查询,但是在通过此方法添加组之后,此功能无法工作。

谢谢!

+1

我会尝试'选择新的List (){Convert.ToString( i ++),s.Key.CodigoDeVenta,s.Sum(x => x.Inventario)}' – Eser

回答

1

抛开分组,只关注语法,你的匿名数组(new [] {...})应该没问题。

但是,看起来您正尝试分配Id =TotalInv =,它看起来像您之前选择匿名对象的修订版中的剩余部分。

所以,相反,你应该能够放下成员标识符,并选择你想要的值在子阵列:

select new [] { 
    Convert.ToString(i++), 
    s.Key.CodigoDeVenta, 
    s.Sum(x => x.Inventario) 
}