2013-07-04 80 views
2

我想讓Linq返回一個數組。 爲了繪製圖表。LINQ返回數組,而不是列表對象的集合

這裏是我的代碼

var orders = _uow.Orders.GetAll() 
      .Where(x => x.Created > baselineDate) 
      .GroupBy(x => x.Created.Day) 
      .Select(c => new {Day = c.Key, Total = c.Sum(t => t.Total)}) 
      .ToList(); 

現在它返回

[{"Day":3,"Total":9999.00},{"Day":4,"Total":9999.00},{"Day":5,"Total":9999.00}] 

但我想的

{"Day":[3,4,5], "Total":[9999, 9999, 9999]} 

這個結果是比較容易繪製圖形的結果。

謝謝大家

回答

4
var groups = _uow.Orders.GetAll() 
      .Where(x => x.Created > baselineDate) 
      .GroupBy(x => x.Created.Day); 

var orders = new { 
    Day = groups.Select(g => g.Key).ToArray(), 
    Total = groups.Select(g => g.Sum(t => t.Toal)).ToArray() 
}; 
+0

謝謝你,它的工作原理。 – riseres

+0

請幫我這個[鏈接] http://stackoverflow.com/questions/17476542/linq-group-by-and-then-display-datetime-for-dd-mmm。我無法格式化字符串。 @Lee – riseres

+0

@riseres很快,你會把你的工作集中到SO上。 –

0

我沒有試過,但可能是這樣的:

Orders[] orders = (your query).ToArray(); 
相關問題