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

Loop to write a cimma separated list of items

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

到目前为止我已经有了这个但不知道,经过一个小时的研究,还有什么可以做的。

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

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

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

            Console.ReadLine();
        }

试试这个:

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

您可以使用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 指出的那样,如果您对大量数字列表执行此操作,则此操作中使用的内存可能会很高。

你没有记录你的价值。

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

Console.WriteLine(content);

一旦你有了一个值,你就可以应用它。您遇到的问题是范围永远不会保留,它适用于新行。

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

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

检查你是否在最后一项,在那种情况下不要写逗号:

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

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