嗨,我想采取列表集合并生成一个单独的csv行.所以拿这个;
List<string> MakeStrings()
{
List<string> results = new List<string>();
results.add("Bob");
results.add("Nancy");
results.add("Joe");
results.add("Jack");
return results;
}
string ContactStringsTogether(List<string> parts)
{
StringBuilder sb = new StringBuilder();
foreach (string part in parts)
{
if (sb.Length > 0)
sb.Append(", ");
sb.Append(part);
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这将返回"Bob,Nancy,Joe,Jack"
寻求LINQ的帮助,在单个语句中执行此操作.谢谢!
Eri*_*ser 28
LINQ没有任何一个衬里可以做到这一点.请注意,您可以使用Aggregate方法执行此操作,但您将使用字符串连接而不是StringBuilder.如果您经常这样做,我会考虑为此添加一个扩展方法:
public static string ToCsv<T>(this IEnumerable<T> source)
{
if (source == null) throw new ArgumentNullException("source");
return string.Join(",", source.Select(s => s.ToString()).ToArray());
}
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 10
var csv = string.Join(",", MakeStrings().ToArray());
Run Code Online (Sandbox Code Playgroud)
我个人建议你使用一个真正的CSV解析器,而不是试图做一个如果您的值包含逗号的内容将会中断.您可以阅读有关滚动自己的CSV解析器的这篇文章.