我想用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