我有一个字符串数组。
var array = new string[] { "test", "test2", "test3" };
我正在尝试将它连接到一个字符串中,在数组中每个值前面都有$,请参阅下面的示例。
$ test,$ test2,$ test3
我一直在尝试使用Linq做到这一点,但到目前为止我的所有尝试都失败了。
我目前的尝试
var formated = array.Select(a => string.Format("${0}", a)).ToArray();
结果:
'索引(从零开始)必须大于或等于零且小于参数列表的大小。'
我知道我以前做过这件事,但我不知道怎么回事。我打算将格式化转换为String.Join,除非有人有更好的想法。
答案 0 :(得分:6)
你很亲密
var formated = array.Select(a => string.Format("${0}", a)).ToArray();
答案 1 :(得分:5)
String.Format
中的索引错误,索引为零。
使用C#6,您可以使用string interpolation ...
array = array.Select(s => $"${s}").ToArray();
......避免此类问题
答案 2 :(得分:1)
你也可以这样做,
var newArray = array.Select(x => "$" + x ).ToArray();
答案 3 :(得分:0)
而不是在linq中使用string.format,为什么不连接字符串。
var array = new string[] { "test", "test2", "test3" };
var formated = array.Select(x => "$" + x).ToArray();