From 38d5a93ca9e47c8449e67433b9a0dd25d1defe25 Mon Sep 17 00:00:00 2001 From: cloudflight <cloudflight@126.com> Date: 星期日, 24 十一月 2024 18:19:19 +0800 Subject: [PATCH] 修改能量分析方法的返回类型为List --- Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs | 44 ++++++++++++++++++++++++++++++-------------- 1 files changed, 30 insertions(+), 14 deletions(-) diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs index 81262d9..a5a7f1f 100644 --- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs +++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs @@ -11,10 +11,11 @@ /// <summary> /// 鍒嗘瀽鏁翠釜绠$綉鐨勮兘閲� /// </summary> - public static EnergyResult AnalyzeEnergy(this Network network,CalcuResult calcuResult) + public static List<EnergyPoint> AnalyzeEnergy(this Network network,CalcuResult calcuResult) { var dictLinks = calcuResult.LinkList.ToDictionary(p => p.Id); var dictNodes = calcuResult.NodeList.ToDictionary(p => p.Id); + var points=new List<EnergyPoint>(); var result = new EnergyResult(); //鎵惧埌绠$綉涓渶姘撮噺涓鸿礋鐨勮妭鐐� var negativeDemandNodes = network.GetAllNodes().Where(n => @@ -40,6 +41,7 @@ EnergyPower = energyInW, }; + points.Add(energyPoint); result.InputEnergy.Add(n.Id,new List<EnergyPoint> { energyPoint }); result.InputTotalEnerge += energyInW; } @@ -69,6 +71,7 @@ EnergyPower = energyInW, }; + points.Add(energyPoint); result.OutputEnergy.Add(n.Id, new List<EnergyPoint> { energyPoint }); result.OutputTotalEnerge += energyInW; } @@ -100,6 +103,7 @@ EnergyPower = energypower, }; + result.MinorLossTotalEnerge += energypower; //濡傛灉瀛樺湪澶氫釜灞�閮ㄦ按澶存崯澶憋紝闇�瑕佺疮鍔犲悎骞� if (result.LossEnergy[Id].Any(e => e.EnergyType == eEnergyType.MinorLoss)) @@ -111,6 +115,8 @@ { result.LossEnergy[Id].Add(energypoint); } + var point = result.LossEnergy[Id].First(e => e.EnergyType == eEnergyType.MinorLoss); + points.Add(point); } if (p.EndMinorloss != 0) @@ -138,6 +144,8 @@ { result.LossEnergy[Id].Add(energypoint); } + var point = result.LossEnergy[Id].First(e => e.EnergyType == eEnergyType.MinorLoss); + points.Add(point); } double pipeheadminorloss = 0; @@ -148,14 +156,16 @@ double energypower = GetEnergyPowerByQH(flow, pipeheadminorloss); var Id = p.Id; if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>()); - result.LossEnergy[Id].Add(new EnergyPoint + var energypoint = new EnergyPoint { Id = Id, EnergyType = eEnergyType.MinorLoss, EnergyPower = energypower, - - }); + + }; + result.LossEnergy[Id].Add(energypoint); result.MinorLossTotalEnerge += energypower; + points.Add(energypoint); } @@ -164,14 +174,16 @@ double energypower = GetEnergyPowerByQH(flow, headlossFriction); var Id = p.Id; if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>()); - result.LossEnergy[Id].Add(new EnergyPoint + var energypoint = new EnergyPoint { Id = Id, EnergyType = eEnergyType.FrictionalLoss, EnergyPower = energypower, - - }); + + }; + result.LossEnergy[Id].Add(energypoint); result.FrictionalLossTotalEnerge += energypower; + points.Add(energypoint); } @@ -190,33 +202,37 @@ { var Type = eEnergyType.Promote; if (!result.InputEnergy.ContainsKey(Id)) result.InputEnergy.Add(Id, new List<EnergyPoint>()); - result.InputEnergy[Id].Add(new EnergyPoint + var energypoint = new EnergyPoint { Id = Id, EnergyType = Type, EnergyPower = energypower, - - }); + + }; + result.InputEnergy[Id].Add(energypoint); result.InputTotalEnerge += energypower; + points.Add(energypoint); } else { var Type = eEnergyType.MinorLoss; if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>()); - result.LossEnergy[Id].Add(new EnergyPoint + EnergyPoint energypoint = new EnergyPoint { Id = Id, EnergyType = Type, EnergyPower = energypower, - - }); + + }; + result.LossEnergy[Id].Add(energypoint); result.MinorLossTotalEnerge += energypower; + points.Add(energypoint); } } } - return result; + return points; } private static double GetEnergyPowerByQH(double flowQ,double head) -- Gitblit v1.9.3