2010-11-24 77 views
1

我想在一个List<string>追加项目的StringBuilder使用LINQ:追加列表项目的StringBuilder

items.Select(i => sb.Append(i + ",")); 

一个发现了类似的问题here这解释了为何上述不工作,但我不能” t找到EachForEachList,我可以用它来代替。

有没有在一个班轮中这样做的简洁方法?

+0

解决了吗? ForEach是.Net 4通用列表中的一种方法。 – 2010-11-24 12:39:42

+0

是的,我是.Net 3.5,不幸的是 – fearofawhackplanet 2010-11-24 12:40:49

回答

3

如何使用简单的foreach循环。这样你就有了修改StringBuilder的语句,而不是使用带有副作用的表达式。

也许你的问题是更好地与String.Join(",", items)您正在使用什么版本的.NET的

1

试试这个:

http://www.extensionmethod.net/Details.aspx?ID=297

有一对夫妇的在该网站上其他的ForEach例子,如果上述方法不为你工作。

编辑:

我不知道,如果它依赖于.NET版本frameowkr你有,但是我刚

var list = new List<int>(); 

list.ForEach(i => Console.WriteLine(i)); 
在.NET 4.0的控制台应用程序

,和它的工作精细。

+0

对于扩展方法的建议。 – fearofawhackplanet 2010-11-24 12:48:09

6
items.ForEach(item => sb.Append(item + ",")); 
+0

请注意,您必须牢记列表而不是IList ,此扩展名不再可用。这就是为什么我更喜欢编写自己的ForEach,它适用于IEnumerable 。 – Tigraine 2010-11-24 12:38:35