可以将 switch/case 语句改为一个字典,以避免多次重复的代码。同时,可以使用三元运算符来简化代码。最终优化后的代码如下:

var dateKeyFormat = query.CycleType == 0 ? 'yyyy-MM-dd' : 'yyyy-MM';
var groupByResult = 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();

var cycleTypeDict = new Dictionary<int, string>()
{
    { 0, '天' },
    { 1, '月' }
};

var resultListInfo = new ResultListInfo<WBStatisticsaInfo>()
{
    List = groupByResult,
    IsSuccess = true,
    Msg = $'按{cycleTypeDict[query.CycleType]}统计成功',
    ResultCode = ApiStatusCode.SUCCESS
};

return resultListInfo;

优化后的代码优势:

  • 减少代码重复: 使用字典存储不同的日期格式,避免了重复的代码块。
  • 提高可读性: 三元运算符和字典的使用使代码更加简洁易懂。
  • 更灵活: 如果需要添加更多日期格式,只需要修改字典即可,不需要修改 switch/case 语句。
C# 代码优化:使用字典和三元运算符简化 switch/case 语句

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

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