0

我试图在分组后获得一些数字的平均值,但它不会为我分组。为什么这没有做我认为应该做的事情?

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
    };
4

1 回答 1

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
    };
于 2011-02-07T22:11:08.560 回答