博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq GroupBy
阅读量:6671 次
发布时间:2019-06-25

本文共 2481 字,大约阅读时间需要 8 分钟。

public class InterfaceKey : IComparable    {        ///         /// 接口名称        ///         public string InterfaceName = string.Empty;        ///         /// 产品标识        ///         public string Aid = string.Empty;        ///         /// 版本标识        ///         public string Version = string.Empty;        ///         /// 平台标识        ///         public string OSID = string.Empty;        ///         /// 表示时间的字符串(具体到分钟。如:201206010001)        ///         public string FileName;        public int CompareTo(object obj)        {            if (obj.GetType() != this.GetType())            {                return -1;            }            InterfaceKey selfObj = obj as InterfaceKey;            int result = 0;            if (this.InterfaceName == selfObj.InterfaceName && this.Aid == selfObj.Aid && this.Version == selfObj.Version && this.OSID == selfObj.OSID)            {                result = 1;            }            else                result = -1;            return result;        }        public override bool Equals(object obj)        {            if (obj.GetType() != this.GetType())            {                return false;            }            InterfaceKey other = obj as InterfaceKey;            if (this.InterfaceName != other.InterfaceName || this.Version != other.Version || this.Aid != other.Aid || this.OSID != other.OSID)            {                return false;            }            return true;        }        public override int GetHashCode()        {            return this.InterfaceName.ToString().GetHashCode();        }    }
///     /// 封装接口需要统计的信息的数据结构(可扩展)    ///     public class InterfaceInfo    {        ///         /// 接口调用次数        ///         public Int64 Frequency;        ///         /// 接口调用耗时        ///         public Int64 TimeConsuming;    }
//Linq GroupBy hourMergerInfo:Dictionary
var query = hourMergerInfo.GroupBy(v => v.Key.InterfaceName).ToDictionary(x => x.Key, x => new { SumFrequency = x.Sum(y => y.Value.Frequency), AvgTimeConsuming = x.Average(y => y.Value.TimeConsuming * 1.0 / y.Value.Frequency) }); foreach (var item in query) { string key = item.Key; Int64 sumFrequency = item.Value.SumFrequency; double avgTimeConsuming = item.Value.AvgTimeConsuming; }

转载于:https://www.cnblogs.com/zhanjindong/archive/2012/12/06/2804701.html

你可能感兴趣的文章
为什么我的物联网创业失败?看看这五个原因
查看>>
Intel融合Altera做大做强FPGA
查看>>
英特尔X520万兆网卡构建高效云中心
查看>>
AI“入侵”数据中心
查看>>
家用医疗仪器市场规模首破千亿大关 行业并购势头强劲
查看>>
SSH::Batch,在公有云中使用 ssh 工具箱
查看>>
震惊:遭劫8000万美元的孟加拉银行竟然没装防火墙
查看>>
“外围”消亡 企业安全防护需要新形态
查看>>
关于Java应用相关不同产品的架构
查看>>
五个不容忽视的“非主流”大数据技术工具
查看>>
孙正义:未来30年的人工智能和物联网
查看>>
三招教你如何选择企业网盘
查看>>
轻量函数式 JavaScript:一、为什么要进行函数式编程?
查看>>
替代SSD?Crossbar进军中国存储市场
查看>>
云基础设施建设第二季度继续保持增长
查看>>
【1971-2050 计算革命简史】从摩尔定律到“消失”的计算机
查看>>
5G 第五代移动通信系统你知多少?
查看>>
导致硬盘录像机卡死的十大原因分析
查看>>
大数据广告技术公司WindyVale获百万美元投资
查看>>
《Servlet和JSP学习指南》一2.3 cookie
查看>>