我想用Linq的Aggregate函数制作逗号分隔的值字符串。有人知道怎么做吗?Linq的聚合函数,如何制作一个CSV字符串
考虑到字符串数组是这样的:
var authors = new string[] {"author 1", "author 2", "author 3"};
我如何获得一个字符串这样作者1,作者2,作者3? 我在想像authors.Aggregate(author => author + ",")
这样的东西可能可以做到这一点,但不确定。
想法?
我想用Linq的Aggregate函数制作逗号分隔的值字符串。有人知道怎么做吗?Linq的聚合函数,如何制作一个CSV字符串
考虑到字符串数组是这样的:
var authors = new string[] {"author 1", "author 2", "author 3"};
我如何获得一个字符串这样作者1,作者2,作者3? 我在想像authors.Aggregate(author => author + ",")
这样的东西可能可以做到这一点,但不确定。
想法?
如果你只希望用逗号将它们分开,只是使用的string.join:
string.Join(", ", authors);
这将任何的IEnumerable <字符串工作>(至少在.NET 4.0),但工作自1.0以来的字符串数组。
O很酷,我想Aggregate并不是我所需要的。看起来加入是正确的。我会试试这个......谢谢。 – 2010-09-12 22:37:54
良好的通话 - 我忘了这种方法! – ColinE 2011-07-05 08:15:02
正如Bennor McCarthy所说的,为了这个目的,使用string.Join
会更好。如果你真的想使用Enumerable.Aggregate
虽然,这应该这样做:
string csvString = authors.Aggregate((csvSoFar, author) => csvSoFar + ", " + author);
这大致相当于:
string csvString = authors.First();
foreach (string author in authors.Skip(1))
{
csvString += ", " + author;
}
谢谢,雅看起来像加入很多是这个任务更简单的方法。 – 2010-09-12 22:38:47
的[LINQ聚合算法解释(可能的复制http://stackoverflow.com/questions/7105505/linq-aggregate-algorithm-explained) – Jamiec 2015-10-05 14:49:38