StringBuilder自动创建新行

0 c# stringbuilder visual-studio-2010 .net-4.5

我正在使用StringBuilder将列表转换为单个字符串.我不希望字符串有换行符,但它会自动为附加到字符串的每个列表值添加一个新行.

for (int i = 1; i <= ruleN; i++)
{
    string fizz = "F";
    string buzz = "B";
    string fizzBuzz = "FB";
    List<string> numberSet = new List<string>();
    if(i % ruleA == 0 && i % ruleB != 0) //if i is devisible by A  
                                         //but not B
    {
        numberSet.Add(fizz); 
    }
    if(i % ruleB == 0 && i % ruleA != 0) //if i is devisible by B 
                                         //but not A
    {
        numberSet.Add(buzz);
    }
    if(i % ruleA == 0 && i % ruleB ==0) //if i is devisible by both 
                                        //A and B
    {
        numberSet.Add(fizzBuzz);
    }
    if(i % ruleA != 0 && i % ruleB != 0) //if i is devisible by 
                                         //neither A nor B 
    {
        //convert the number to a string and add it to list numberSet
        string undevisible = Convert.ToString(i);
        numberSet.Add(undevisible);

    StringBuilder Builder = new StringBuilder();
    foreach (string number in numberSet)
    {
        // Append each string to the StringBuilder overload.
        Builder.Append(number).Append(" ");
    }
    string output = Builder.ToString();
    Console.WriteLine(output);
Run Code Online (Sandbox Code Playgroud)

输出最终看起来像这样:

在此输入图像描述

新线来自哪里?

小智 5

他们来自你的Console.WriteLine(output).请注意,这是在你的for循环中.

  • 为了扩展这一点,@ user3620903可以切换到`Console.Write(output)`. (3认同)