Linq在字符串数组上使用string.format

时间:2017-09-21 13:01:44

标签: c# arrays linq

我有一个字符串数组。

var array = new string[] { "test", "test2", "test3" };

我正在尝试将它连接到一个字符串中,在数组中每个值前面都有$,请参阅下面的示例。

  

$ test,$ test2,$ test3

我一直在尝试使用Linq做到这一点,但到目前为止我的所有尝试都失败了。

我目前的尝试

var formated = array.Select(a => string.Format("${0}", a)).ToArray();

结果:

  

'索引(从零开始)必须大于或等于零且小于参数列表的大小。'

我知道我以前做过这件事,但我不知道怎么回事。我打算将格式化转换为String.Join,除非有人有更好的想法。

4 个答案:

答案 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();