循环写入以逗号分隔的项目列表

时间:2015-04-13 20:46:10

标签: c# for-loop separator

我需要编写一个打印49到1的for循环,每个值用逗号分隔。因此,它不能在最后一个值之后打印逗号。

到目前为止,我已经掌握了这一点,并且在经过一个小时的研究后不知道该做什么。

For (int i = 49; i >= 1; i--)
{
    Console.WriteLine(i + ",");
}

6 个答案:

答案 0 :(得分:2)

只需检查循环中的位置即可知道是否需要打印逗号。

        public static void Test()
        {
            for (int i = 49; i >= 1; i--)
            {
                Console.WriteLine(i + (i != 1 ? "," : ""));
            }

            Console.ReadLine();
        }

答案 1 :(得分:1)

您可以使用String.Join

List<string> numbers = new List<string>();
for (int i = 49; i >= 1; i--) {
    numbers.Add(i.ToString());

}
string numberWithCommas = String.Join(",", numbers);
Console.WriteLine(numberWithCommas);

或者你可以输入if条件来检查最后一个元素并有条件地打印你的逗号。

String.Join将是一种更简洁的方法来执行此操作。但正如@CommuSoft指出的那样,如果您对大量数字进行此操作,则此操作中使用的内存可能会很高。

答案 2 :(得分:1)

检查您是否在最后一项,并且在这种情况下不要写逗号:

for (int i = 49; i >= 1; i--) {
    Console.Write(i);
    if (i > 1) {
        Console.Write(",");
    }
    Console.WriteLine();
}

(有一些选择更优雅,但这最接近原始代码。例如,您可以在数字前面写逗号并跳过第一个逗号。)

答案 3 :(得分:0)

试试这个:

for (int i = 49; i >= 1; i--)
{
    Console.Write("{0}{1}", i, i == 1 ? string.Empty : ",");
}

答案 4 :(得分:0)

你没有跟踪你的价值。

var content = String.Empty;
for(var i = 49; i >= 1; i--)
     content += (i + ",");

Console.WriteLine(content);

获得值后,即可应用它。你所拥有的问题是范围永远不会存在,它适用于新的一行。

答案 5 :(得分:0)

i的值确定何时添加逗号:

For (int i = 49; i >= 1; i--)
{
    Console.WriteLine(i >= 1 ? i + "," : i);
}