您想使用string.Join http://msdn.microsoft.com/en-us/library/57a79xd0.aspx方法,BCL 中存在用于此目的的方法。
Example:
var myArray = new string[] { "one", "two", "three" };
var output = string.Join(", ", myArray);
或者,如果您使用的是 .NET 3.5,则可以使用任何IEnumerable<string>
像这样:
var output = string.Join(", ", myEnumerable.ToArray());
(请注意,这并不能提供所需的最佳性能,尽管它显然仍然是“O(n)”,并且应该适用于几乎所有情况)。
现在,如果您的枚举不是类型string
(一般来说IEnumerable<T>
),你可以只使用Select
方法将结果转换为字符串,例如
var output = string.Join(", ", myEnumerable.Select(e => e.ToString()).ToArray());
我不确定您是否正在处理本身可能包含逗号的值,但这可以通过将它们括在引号中来解决("
) 并转义引号,类似于 CSV 格式。
var output = string.Join(", ", items.Select(x => x.Contains(",") ?
"\"" + x.Replace("\"", "\"\"") + "\"" : x);
当然,将它们再次拆分是一项稍微复杂的任务,这需要一些正则表达式。