You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用switch简化多数组打印逻辑?C#技术咨询

当然可行!这是非常典型的代码优化场景

你完全可以通过提取公共逻辑的方式,用单个foreach循环替代重复的代码块,后续新增数组时只需要扩展switch分支即可,维护起来会轻松很多。

优化思路

核心是先通过switch语句确定要操作的目标数组,把它赋值给一个统一的变量,然后将排序、打印这些重复逻辑抽离出来,只执行一次。

优化后的代码示例

// 先声明一个变量存储选中的目标数组
double[] targetArray = null;

switch (arraychoice.Key)
{
    case ConsoleKey.A:
        targetArray = dataset.Num128_change;
        break;
    case ConsoleKey.B:
        targetArray = dataset.Num256_change; // 示例:新增的数组
        break;
    case ConsoleKey.C:
        targetArray = dataset.Num512_change; // 后续新增数组直接加case即可
        break;
    default:
        Console.WriteLine("无效的选择,请重新输入");
        return; // 或者其他默认处理逻辑
}

// 统一执行公共逻辑:清屏、排序、遍历打印
Console.Clear();
bubblesort.Bubblesort(targetArray);
foreach (double item in targetArray)
{
    Console.WriteLine(item);
}
Console.ReadKey();

为什么这样更好?

  • 消除重复代码:排序、打印逻辑只写一次,避免多个foreach循环的冗余
  • 扩展性更强:后续新增数组时,只需要在switch里加一个case给targetArray赋值,不需要重复编写遍历和排序代码
  • 维护成本更低:如果以后需要修改打印格式或者排序逻辑,只需要修改一处代码即可

如果你的数组类型不是double[],而是更通用的可枚举类型,可以把targetArray声明为IEnumerable<double>,适配更多场景。

内容的提问来源于stack exchange,提问作者user9090260

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:26:55