c# – 如何使用多个GroupBys构建LINQ?

c# – 如何使用多个GroupBys构建LINQ?,第1张

概述我有一个看起来像这样的实体: public partial class MemberTank{ public int Id { get; set; } public int AccountId { get; set; } public int Tier { get; set; } public string Class { get; set; } publ 我有一个看起来像这样的实体:
public partial class MemberTank{    public int ID { get; set; }    public int AccountID { get; set; }    public int TIEr { get; set; }    public string Class { get; set; }    public string Tankname { get; set; }    public int Battles { get; set; }    public int VictorIEs { get; set; }    public System.DateTime LastUpdated { get; set; }}

数据的一个小样本:

ID   AccountID   TIEr   Class  Tankname   Battles  VictorIEs ---  ---------   ----   -----  ---------  -------  ---------- 1    432423      5      Heavy  KV         105      58 2    432423      6      Heavy  IS         70       39 3    544327      5      Heavy  KV         200      102 4    325432      7      Medium KV-13      154      110 5    432423      7      Medium KV-13      191      101

最终我试图得到一个层次列表的结果,层级是类的列表,在班级内是Tankname与战斗和胜利之和的独特组合.

在单个liNQ语句中可以做到这一切吗?还是有另一种方式轻松获得结果? (我知道我可以轻松地循环遍历DbSet几次,以产生我想要的列表;我希望有一个更有效的方式获得与liNQ相同的结果.)

解决方法 这应该做到:
var output = from mt in MemberTanks             group by {mt.TIEr,mt.Class,mt.Tankname} into g             select new { g.Key.TIEr,g.Key.Class,g.Key.Tankname,fights = g.Sum(mt => mt.Battles),Wins = g.Sum(mt=> mt.VictorIEs                        };
总结

以上是内存溢出为你收集整理的c# – 如何使用多个GroupBys构建LINQ?全部内容,希望文章能够帮你解决c# – 如何使用多个GroupBys构建LINQ?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1260816.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存