2010-11-24 74 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