Pau*_*yer 7 .net linq csv string aggregate
我想用Linq的Aggregate函数创建一个逗号分隔值字符串.有人知道怎么做吗?
给定一个像这样的字符串数组:
var authors = new string[] {"author 1", "author 2", "author 3"};
Run Code Online (Sandbox Code Playgroud)
如何获得像这个作者1,作者2,作者3的单个字符串?我想的authors.Aggregate(author => author + ",")
可能会做到这一点,但不确定.
想法?
Ben*_*thy 12
如果你只想用逗号分隔它们,只需使用string.Join:
string.Join(", ", authors);
Run Code Online (Sandbox Code Playgroud)
这适用于任何IEnumerable <string>(至少在.NET 4.0中),但是从1.0开始就使用了字符串数组.
正如Bennor McCarthy所说,string.Join
为了这个目的,你会更好.如果你确实想要使用Enumerable.Aggregate
,那么应该这样做:
string csvString = authors.Aggregate((csvSoFar, author) => csvSoFar + ", " + author);
Run Code Online (Sandbox Code Playgroud)
这大致相当于:
string csvString = authors.First();
foreach (string author in authors.Skip(1))
{
csvString += ", " + author;
}
Run Code Online (Sandbox Code Playgroud)