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

C#循环内执行字符串拼接如何让固定开头文本仅输出一次?

问题原因

你将固定前缀的输出逻辑放在了循环体内部,所以每生成一个随机数都会重复输出前缀。你需要的单循环实现方案如下,同时还能顺便解决原有代码末尾多余+号的问题:

实现方案

方案1:循环内判断索引,直接逐段输出

该方案全程仅遍历一次,无额外内存开销,是性能最优的实现:

int sum = 0;
Random rnd = new Random();
int[] numbers = new int[10];
for (int i = 0; i < numbers.Length; i++)
{
    int num = rnd.Next(101, 10000);
    numbers[i] = num;
    sum += num;
    
    // 仅首次循环输出前缀
    if (i == 0)
    {
        Console.Write("Calculating the result of: " + num);
    }
    else
    {
        Console.Write(" + " + num);
    }
}
// 循环结束后输出计算结果
Console.WriteLine(" = " + sum);

如果需要简化代码,可以用三目运算符合并输出逻辑:
Console.Write(i == 0 ? $"Calculating the result of: {num}" : $" + {num}");

方案2:单循环内用StringBuilder拼接表达式后输出

如果后续需要复用表达式文本,推荐用该方案,避免频繁字符串拼接带来的性能损耗,注意使用该方案需要在代码顶部引入using System.Text;命名空间:

int sum = 0;
Random rnd = new Random();
int[] numbers = new int[10];
StringBuilder expressionBuilder = new StringBuilder("Calculating the result of: ");
for (int i = 0; i < numbers.Length; i++)
{
    int num = rnd.Next(101, 10000);
    numbers[i] = num;
    sum += num;
    
    if (i > 0)
    {
        expressionBuilder.Append(" + ");
    }
    expressionBuilder.Append(num);
}
expressionBuilder.Append(" = ").Append(sum);
Console.WriteLine(expressionBuilder.ToString());

内容的提问来源于stack exchange,提问作者General.Stuff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:09:00