我正在努力解决linq问题。
我想:
我尝试过以下代码:
1.0000
但是我最终得到前3个schedule_region_ids而不是每个schedule_region_id的前三个分档的平均值。如果我首先尝试GroupBy,那么我会得到自主类型错误。
我有一个如下所示的数据集:
var categories = drugonboard
.Where(p => p.Field<int?>("QC") != 1)
.OrderByDescending(x => x.Field<int>("bin")).Take(3)
.GroupBy(t => new { ID = t.Field<int>("schedule_region_id")})
.Select(g => new
{
schedule_region_id = g.Key.ID,
BaselPeak = g.Average(p => p.Field<double>("AnalytePeak"))
});
答案 0 :(得分:0)
分组后和分拣子记录后需要3个。
var categories = drugonboard
.Where(p => p.Field<int?>("QC") != 1)
.GroupBy(t => new { ID = t.Field<int>("schedule_region_id")})
.Select(g => new {
schedule_region_id = g.Key.ID,
BaselPeak = g.OrderByDescending(x => x.Field<int>("bin"))
.Take(3)
.Average(p => p.Field<double>("AnalytePeak"))
});
这假定: 如果所有垃圾箱都是QC = 1,那么您根本不想要schedule_region_id父级,而前3位则表示最高3个垃圾箱号码。