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

如何在foreach循环中将嵌套JSON的手机号打印在同一行

解决同一行打印嵌套JSON中手机号的问题

嘿,你的问题其实和String.Format没关系,问题出在每次循环都调用了会自动加换行的debugOutput方法——你每次传入格式化后的手机号,方法里都会给它追加Environment.NewLine,自然每个手机号就单独占一行了。

这里给你两个简单可行的解决方案:

方案1:先拼接所有手机号,再一次性输出

先把所有需要打印的手机号格式好并拼接成一个完整的字符串,最后只调用一次debugOutput,这样就能保证所有手机号在同一行:

// 用StringBuilder来高效拼接字符串
StringBuilder phoneLine = new StringBuilder();
foreach (var person in JMain.person)
{
    // 把每个手机号格式后追加到字符串里
    phoneLine.AppendFormat("<{0};>", person.phone);
}

// 一次性输出拼接好的内容
debugOutput(phoneLine.ToString());

如果你的outPut变量需要保留最终的换行,这个方案完全适用——debugOutput里的换行只会在整个手机号行的末尾添加一次。

方案2:修改debugOutput方法,控制换行时机

给debugOutput加一个可选参数,让你可以决定是否在当前输出后添加换行。这样循环时不换行,循环结束后再补一个换行(可选):

// 修改后的debugOutput方法,默认还是加换行,保持原有逻辑兼容
private void debugOutput(string strDebugText, bool addNewLine = true)
{
    try
    {
        string outputContent = strDebugText;
        if (addNewLine)
        {
            outputContent += Environment.NewLine;
        }
        outPut += outputContent;
        System.Diagnostics.Debug.Write(outputContent);
    }
    catch(Exception ex)
    {
        System.Diagnostics.Debug.Write(ex.Message.ToString() + Environment.NewLine);
    }
}

// 调用方式:循环时关闭自动换行
foreach (var person in JMain.person)
{
    debugOutput(String.Format("<{0};>", person.phone), false);
}
// 可选:最后加一个换行,让后续输出不挤在同一行
debugOutput("", true);

两种方案都能解决你的问题,选哪个看你更倾向于修改调用逻辑还是扩展方法功能~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:32:10