假设我有一个项目数组(或列表)
A[] = [a,b,c,d,e]
如果我想打印它们以便每个项目用逗号(或任何其他分隔符)分隔,我通常必须这样做:
for(int i=0; i < A.Count; i++)
{
Console.Write(A[i]);
if (i != A.Count-1)
Console.Write(",");
}
所以,我的输出如下:
a,b,c,d,e
有没有更好或更简洁的方法来实现这一目标?
我喜欢使用foreach循环,但是在最后一个元素之后也会打印一个逗号,这是不可取的。
答案 0 :(得分:27)
Console.WriteLine(string.Join(",", A));
答案 1 :(得分:9)
您正在寻找String.Join()
:
var list = String.join(",", A);
String.Join
方法(String, String[])
使用每个元素之间的指定分隔符连接字符串数组的所有元素。
public static string Join( string separator, params string[] value )
答案 2 :(得分:6)
有更好或更简洁的方法来实现这一目标吗?我喜欢使用foreach循环,但是在最后一个元素之后也会打印一个逗号,这是不可取的。
正如其他人所说,Join
做正确的事。但是,这是考虑将来可能对您有所帮助的问题的另一种方式。而不是将问题视为在除了最后一个元素之外的每个元素之后添加一个逗号 - 你正确注意到它使得很难使用“foreach”循环 - 将问题视为在除第一个元素之外的每个元素之前添加逗号。现在使用foreach循环很容易!
有大约一百万种解决类似问题的方法,请参阅:
Eric Lippert's challenge "comma-quibbling", best answer?
原帖博客:
http://blogs.msdn.com/b/ericlippert/archive/2009/04/15/comma-quibbling.aspx
答案 3 :(得分:4)
使用string.Join方法,非常方便。
String.Join(",", my_array)
答案 4 :(得分:3)
使用:
String.Join(",", arrayOfStrings);
答案 5 :(得分:2)
string separator = String.Empty;
for(int i=0; i < A.Length; i++)
{
Console.Write(seperator);
Console.Write(A[i]);
separator = ",";
}
答案 6 :(得分:1)
using System;
using System.Linq;
public class Program
{
public static void Main()
{
string[] values = new string[]{"banana", "papaya", "melon"};
var result = values.Aggregate((x,y) => x + ", " + y);
Console.WriteLine(result);
}
}