2011-02-07 17 views
0

グループ化した後にいくつかの数値の平均を求めようとしていますが、グループ化されません。なぜこれが私の考えるべきことではないのですか?Linq複数の列のグループ化と平均化

var eventInfo = from eventData in dt.AsEnumerable() 
    group eventData by new 
     { 
      Phase1Minutes = eventData.Field<decimal>("Phase1Minutes"), 
      Phase2Minutes = eventData.Field<decimal>("Phase2Minutes"), 
      TechnologyType = eventData.Field<string>("TechnologyType"), 
      TechnologySubType = eventData.Field<string>("TechnologySubType") 
     } into g 
    select new 
    { 
     Phase1Avg = g.Average(x => x.Field<decimal>("Phase1Minutes")), 
     Phase2Avg = g.Average(x => x.Field<decimal>("Phase2Minutes")), 
     g.Key.TechnologyType, 
     g.Key.TechnologySubType 
    }; 

答えて

0

既にグループ化しているものを平均するのは意味がありません。簡単な例を与えるために、年齢別に人をグループ化し、各グループ内の平均年齢を見つけることを想像してください...彼らはすべて同じ年齢です!

var eventInfo = from eventData in dt.AsEnumerable() 
    group eventData by new 
     { 
      TechnologyType = eventData.Field<string>("TechnologyType"), 
      TechnologySubType = eventData.Field<string>("TechnologySubType") 
     } into g 
    select new 
    { 
     Phase1Avg = g.Average(x => x.Field<decimal>("Phase1Minutes")), 
     Phase2Avg = g.Average(x => x.Field<decimal>("Phase2Minutes")), 
     g.Key.TechnologyType, 
     g.Key.TechnologySubType 
    }; 
+0

ダンそれ:

私の推測では、あなただけのグループの分の部分を取り出す必要です!もちろん。私はこれをちょっと長く見てきました。ありがとう。 – Homer

関連する問題