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

如何在Console.WriteLine中实现多行输出?寻求替代\r\n的方案

优化Console.WriteLine换行输出的几种方案

我希望用Console.WriteLine输出内容时每个部分单独占一行,目前用\r\n做换行处理,但这种方式不好维护,有没有更优的替代方案?当前实现代码如下:

Console.WriteLine("
What Operation you need to perform 
A-Addition: 
S-Subtraction: 
M-Multiplication: 
L-FindLargestElementInMatrix: 
S-FindSmallestElementInMatrix: 
DL-DisplayLowerTriangularMatrix: 
DU-DisplayUpperTriangularMatrix: 
T-FindTransposeOfMatrix: 
E-CheckIfTwoMatricesEqual: 
I-CheckIfTwoMatrixIsIdentityMatrix: 
S-SumOfDiagonalElementsOfMatrix: 
AR-SumOfEachRowOfMatrix: 
AC-SumOfEachColumnOfMatrix: 
IR-InterchangeRowsOfMatrix: 
IC-InterchangeColumnsOfMatrix: ");

方案1:逐行调用Console.WriteLine

直接给每个选项单独调用一次Console.WriteLine,逻辑清晰,后续要加删选项直接操作对应行即可,维护成本极低:

Console.WriteLine("请选择要执行的操作:");
Console.WriteLine("A-加法");
Console.WriteLine("S-减法");
Console.WriteLine("M-乘法");
Console.WriteLine("L-查找矩阵中最大元素");
Console.WriteLine("Sm-查找矩阵中最小元素"); // 原代码有重复的S前缀,这里重命名避免用户混淆
Console.WriteLine("DL-显示矩阵下三角");
Console.WriteLine("DU-显示矩阵上三角");
Console.WriteLine("T-求矩阵转置");
Console.WriteLine("E-判断两个矩阵是否相等");
Console.WriteLine("I-判断矩阵是否为单位矩阵");
Console.WriteLine("Sd-求矩阵对角线元素和"); // 同样重命名解决前缀冲突
Console.WriteLine("AR-求矩阵每行元素和");
Console.WriteLine("AC-求矩阵每列元素和");
Console.WriteLine("IR-交换矩阵的行");
Console.WriteLine("IC-交换矩阵的列");

方案2:用Environment.NewLine拼接字符串

利用string.Join结合Environment.NewLine拼接所有内容,它会自动适配当前系统的换行规则(Windows是\r\n,Linux/macOS是\n),比硬写\r\n更通用:

var menuContent = string.Join(Environment.NewLine,
    "请选择要执行的操作:",
    "A-加法",
    "S-减法",
    "M-乘法",
    "L-查找矩阵中最大元素",
    "Sm-查找矩阵中最小元素",
    "DL-显示矩阵下三角",
    "DU-显示矩阵上三角",
    "T-求矩阵转置",
    "E-判断两个矩阵是否相等",
    "I-判断矩阵是否为单位矩阵",
    "Sd-求矩阵对角线元素和",
    "AR-求矩阵每行元素和",
    "AC-求矩阵每列元素和",
    "IR-交换矩阵的行",
    "IC-交换矩阵的列");

Console.WriteLine(menuContent);

方案3:使用C# 11+的原始字符串字面量

如果你的项目基于C# 11及以上版本,可以用三个双引号包裹多行字符串,直接保留编写时的换行格式,不需要额外转义,可读性拉满:

Console.WriteLine("""
请选择要执行的操作:
A-加法
S-减法
M-乘法
L-查找矩阵中最大元素
Sm-查找矩阵中最小元素
DL-显示矩阵下三角
DU-显示矩阵上三角
T-求矩阵转置
E-判断两个矩阵是否相等
I-判断矩阵是否为单位矩阵
Sd-求矩阵对角线元素和
AR-求矩阵每行元素和
AC-求矩阵每列元素和
IR-交换矩阵的行
IC-交换矩阵的列
""");

额外提醒

原代码里有三个S开头的选项(减法、最小元素、对角线和),用户选择时必然会出现歧义,建议给这类重复前缀的操作重新命名独特标识,比如用Sm代表最小元素、Sd代表对角线和,避免用户混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:25:28