2015-05-04 52 views
2

这里的LINQ的计算总和是我的代码示例使用的ObservableCollection价值

class Gold 
{ 
    public String Category { get; set; } 
    public Double Weight { get; set; } 
} 
class Metal 
{ 
    public ObservableCollection<Gold> GoldCollection { get; set; } 
    public String Name { get; set; } 
    public Double Amount { get; set; } 
} 
class Collection 
{ 
    public ObservableCollection<Metal> MetalCollection { get; set; } 
    public String Category { get; set; } 
    public Double TotalWeight { get; set; } 
} 

如何计算黄金的重量,使用LINQ按类别分组,从收集模式?

回答

2

在这里你去:

Collection obj = new Collection(); 

obj.MetalCollection.SelectMany(m => m.GoldCollection).GroupBy(g => g.Category).Select(t => new { t.Key, MySum = t.Sum(n => n.Weight).ToString() }); 
0

这样的事情?

var result = from m in collection.MetalCollection 
      from g in m.GoldCollection 
      group g by g.Category 
      into gg 
      select new 
      { 
       Category = gg.Key, 
       Sum = gg.Sum(x => x.Weight) 
      };