我需要将List<string>
内的字符串合并到oneliner中。我提出了简单的解决方案,但我不确定这是否是最好的方法。
第一个版本在字符串开头出现问题,
:
string benchmarkiUjemneDatyRazem = "";
foreach (string s in benchmarkiUjemne) {
benchmarkiUjemneDatyRazem = benchmarkiUjemneDatyRazem + "," + s;
}
第二版(Linq power)但仍然使用`:
string benchmarkiUjemneDatyRazem = benchmarkiUjemne.Aggregate("", (current, s) => current + "," + s);
没有,
的工作版本,但行数量在以后读取时会有些痛苦:
int b = 0;
string benchmarkiUjemneDatyRazem = "";
foreach (string s in benchmarkiUjemne) {
if (b == 0) {
b = 1;
benchmarkiUjemneDatyRazem = s;
continue;
}
benchmarkiUjemneDatyRazem = benchmarkiUjemneDatyRazem + "," + s;
}
我提出的最终版本是基于Linq with Subsitute to first char:
string benchmarkiUjemneDatyRazem = benchmarkiUjemne.Aggregate("", (current, s) => current + "," + s).Substring(1);
这是解决这个问题的好方法吗?或者有更好的方法来实际做到这一点?就像使用StringBuilder一样?
答案 0 :(得分:6)
如果您使用的是.Net 4,则可以使用string.Join
(在早期版本中,仅当benchmarkiUjemne
为string[]
时才会有效):
string result = string.Join(",", benchmarkiUjemne);
如果是.Net 3.5或更早版本,您仍然可以通过调用列表中的ToArray
来使用它:
string result = string.Join(",", benchmarkiUjemne.ToArray());
答案 1 :(得分:3)
使用string.Join
:
var res = string.Join(",", benchmarkiUjemne);