Что этот метод должен вернуть? Я вижу строку, но почему, если вы добавляете StringBuilder?
То, что вы пытаетесь сделать, довольно легко, но вам нужно точно объяснить, что вы хотите.
Обновление:
Вот мой дубль. Использование метода расширения для этого глупо и бессмысленно, если вы просто собираетесь передать новый StringBuilder и вернуть строку.
Обновление 2:
Теперь, когда я вижу, что использование, то, что вы делаете, это плохая практика. В идеале вы должны делать что-то вроде:
public static string Print<T>(this IEnumerable<T> col, Func<T,string> printer)
{
var sb = new StringBuilder();
foreach (T t in col)
{
sb.AppendLine(printer(t));
}
return sb.ToString();
}
string[] col = { "Foo" , "Bar" };
string lines = col.Print( s => s);
Обновление 3:
После уточнения:
public static void AppendCollection<T>(this StringBuilder sb,
List<T> col, Func<T,string> printer)
{
col.ForEach( o => sb.AppendLine(printer(o)));
}
(то же самое, что сказал Бруно Конде)
А теперь тебе это больше не нужно:)