eva*_*nal 13 .net c# linq string
我有一个类型的实例List<string[]>
我想将它转换为一个字符串,每个字符串string[]
在换行符上.我正在使用以下LINQ查询来展平列表但是我不确定如何在每个string[]
查询之间添加新行而不将我的查询扩展为更丑陋的东西.有没有办法在没有查询我的查询并使用String.Join
或IEnumberable.Aggregate
在foreach
循环内部的情况下执行此操作?
results.SelectMany(x => x).Aggregate((c, n) => c + ", " + n)
Run Code Online (Sandbox Code Playgroud)
Ser*_*kiy 46
String.Join(Environment.NewLine, results.Select(a => String.Join(", ", a)));
Run Code Online (Sandbox Code Playgroud)
完整样本:
var results = new List<string[]> {
new[]{"this", "should", "be", "on"},
new[]{"other", "line"}
};
var result = String.Join(Environment.NewLine,
results.Select(a => String.Join(", ", a)));
Run Code Online (Sandbox Code Playgroud)
结果:
this, should, be, on
other, line
Run Code Online (Sandbox Code Playgroud)
UPDATE这里聚合完成 - 它使用StringBuilder在内存中构建单个字符串
results.Aggregate(new StringBuilder(),
(sb, a) => sb.AppendLine(String.Join(",", a)),
sb => sb.ToString());
Run Code Online (Sandbox Code Playgroud)