框架已经为我们做的事情真是令人惊讶。
List<int> myValues;
string csv = String.Join(",", myValues.Select(x => x.ToString()).ToArray());
对于一般情况:
IEnumerable<T> myList;
string csv = String.Join(",", myList.Select(x => x.ToString()).ToArray());
如您所见,实际上没有什么不同。请注意,如果包含逗号x.ToString()
,则可能需要用引号引起来(例如"\"" + x.ToString() + "\""
)x.ToString()
。
有关此变化的有趣读物:请参见Eric Lippert博客上的Comma Quibbling。
注意:这是在.NET 4.0正式发布之前编写的。现在我们可以说
IEnumerable<T> sequence;
string csv = String.Join(",", sequence);
使用重载String.Join<T>(string, IEnumerable<T>)
。此方法将自动将每个元素投影x
到x.ToString()
。