我有一个类型为List< string []>我将转换为一个字符串与换行符上的每个字符串[].我使用以下LINQ查询来平滑列表,但是我不知道如何在每个字符串[]之间添加一行,而不会将查询扩展到更丑陋的内容中.有没有办法做到这一点,没有内向我的查询,并使用String.Join或IEnumberable.Aggregate内部的foreach循环?
results.SelectMany(x => x).Aggregate((c,n) => c + "," + n)
解决方法
String.Join(Environment.NewLine,results.Select(a => String.Join(",",a)));
完整样品:
var results = new List<string[]> { new[]{"this","should","be","on"},new[]{"other","line"} }; var result = String.Join(Environment.NewLine,a)));
结果:
this,should,be,on other,line
UPDATE这里是完成的聚合 – 它使用StringBuilder在内存中构建单个字符串
results.Aggregate(new StringBuilder(),(sb,a) => sb.AppendLine(String.Join(",a)),sb => sb.ToString());