我使用了两个LINQ查询来操作数据表并返回我想要的数据.实际上,该表包含以下列:
Group Animal Numbers
Run Code Online (Sandbox Code Playgroud)
单个组中可以有多个动物,并且可以将多个数字分配给单个动物.最初,我想计算每种特定动物的数字范围,然后计算每组的平均范围.输出是组编号,然后是平均范围.
我有以下两个LINQ查询,它们确实有效,但是我的问题是,这可以合并到一个查询中,或者,因为它们是不同的操作,它们是否应该保持单独以便于读取和可测试性?
//Calculate range/delta for each number per animal
var query = from data in Data.AsEnumerable()
group data by new { animal = data.Field<string>("animal"), gp = data.Field<string>("group") }
into g
orderby g.Key.gp
select new
{
animal = g.Key.animal,
gp = g.Key.gp,
delta = g.Max(c => Convert.ToDouble(c.Field<string>("numbers")))
- g.Min(c => Convert.ToDouble(c.Field<string>("numbers")))
};
//calculate average range/delta per group
var temp = from q in query
group q by q.gp
into g
select new
{
gp = g.Key,
average = g.Average(c => c.delta)
};
Run Code Online (Sandbox Code Playgroud)
谢谢.