以下面的LINQ查询为例.请不要对代码本身发表评论,因为我只是输入它来帮助解决这个问题.
以下LINQ查询使用"分组依据"并计算摘要信息.正如您所看到的,有许多计算正在对数据执行,但LINQ在幕后的效率如何.
var NinjasGrouped = (from ninja in Ninjas
group pos by new { pos.NinjaClan, pos.NinjaRank }
into con
select new NinjaGroupSummary
{
NinjaClan = con.Key.NinjaClan,
NinjaRank = con.Key.NinjaRank,
NumberOfShoes = con.Sum(x => x.Shoes),
MaxNinjaAge = con.Max(x => x.NinjaAge),
MinNinjaAge = con.Min(x => x.NinjaAge),
ComplicatedCalculation = con.Sum(x => x.NinjaGrade) != 0
? con.Sum(x => x.NinjaRedBloodCellCount)/con.Sum(x => x.NinjaDoctorVisits)
: 0,
ListOfNinjas = con.ToList()
}).ToList();
Run Code Online (Sandbox Code Playgroud)
任何建议都值得赞赏,因为我们在整个软件中使用这种类型的代码,我真的希望更好地了解LINQ在幕后做什么(可以这么说).也许有更好的方法?