可以将判断周期类型的代码改为使用字典来存储不同类型对应的日期格式,避免使用if-else语句。同时,可以将两个if语句合并为一个,减少重复代码。优化后的代码如下:

Dictionary<int, string> cycleTypeFormats = new Dictionary<int, string>() { { 0, "yyyy-MM-dd" }, { 1, "yyyy-MM" } };

if (!cycleTypeFormats.TryGetValue(query.CycleType, out string dateKeyFormat)) { return new ResultListInfo() { List = list, IsSuccess = false, Msg = "周期类型错误", ResultCode = ApiStatusCode.FAIL, }; }

list = query.DateType == 1 ? select.Where(s => s.FirstBalanceTime >= query.StartTime && s.FirstBalanceTime <= query.EndTime) .GroupBy(s => s.FirstBalanceTime.Value.ToString(dateKeyFormat)) .Select(s => new WBStatisticsaInfo() { DateTime = s.Key.ToString(), NetWeightSun = s.Sum(s.Value.NetWeight), RealWeightSun = s.Sum(s.Value.RealWeight), RoughWeightSun = s.Sum(s.Value.RoughWeight), TareWeightSun = s.Sum(s.Value.TareBalanceNum), }).ToList() : query.DateType == 2 ? select.Where(s => s.SecondBalanceTime >= query.StartTime && s.SecondBalanceTime <= query.EndTime) .GroupBy(s => s.SecondBalanceTime.Value.ToString(dateKeyFormat)) .Select(s => new WBStatisticsaInfo() { DateTime = s.Key.ToString(), NetWeightSun = s.Sum(s.Value.NetWeight), RealWeightSun = s.Sum(s.Value.RealWeight), RoughWeightSun = s.Sum(s.Value.RoughWeight), TareWeightSun = s.Sum(s.Value.TareBalanceNum), }).ToList() : list;

怎么优化这段代码string dateKeyFormat = stringEmpty; if queryCycleType == 0 dateKeyFormat = yyyy-MM-dd; else if queryCycleType =

原文地址: http://www.cveoy.top/t/topic/bEyI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录