【发布时间】:2014-05-10 00:26:09
【问题描述】:
我正在使用 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);
输出最终看起来像这样:
换行符是从哪里来的?
【问题讨论】:
-
Console.WriteLine(output);在 for 循环内。应该在外面吗? -
导致修订版 2 的编辑删除了此问题的相关代码。我恢复了代码,但我不确定现在缩进是否正确,因为原始代码缩进很奇怪。也许缺少一些花括号。
标签: c# visual-studio-2010 .net-4.5 stringbuilder