2016-11-04 51 views
2

我有一个非常简单的问题,但似乎无法弄清楚。我创建了一个字符串列表。但我想将列表格式化为一个看起来像一个数组的字符串。列入格式化字符串

因此,例如,这是我的名单

List<string> testData = new List<string>(); 
testData.Add("test 1"); 
testData.Add("test 2"); 

我想,那么所有的数据格式化为一个字符串,希望看起来像这样:

['test 1', 'test 2'] 

伊夫试图用的string.join但那不会得到我期待的结果。

+1

执行报价必须是单引号?如果没有,你可以看看JSON.NET。 –

+0

我会去继承'List '的自定义类,然后重写ToString方法 – Alex

+0

是的单引号 – jsg

回答

4

我试图使用一个字符串。加入但没有得到我期待的结果。

确实如此。然而,字符串格式可以帮助:

var res = "[" + string.Join(", ", testData.Select(s => $"'{s}'")) + "]"; 

此前C#6,您将需要使用string.Format明确:

var res = "[" + string.Join(", ", testData.Select(s => string.Format("'{0}'", s))) + "]"; 
4
var result = "[" + String.Join(", ", testData.Select(c => "'" + c + "'")) + "]"; 
+0

您忘记关闭外部圆括号 – Innat3

+0

我编辑我的回答 – selami

0
string result = "[" + string.Join(",", testData.Select(i => "'" + i + "'").ToArray()) + "]"; 
+0

不再需要添加.ToArray()。它没有ToArray()扩展。 – selami

+0

这很奇怪,我想gettting:无法从'System.Collections.Generic.IEnumerable '转换为'string []' – Basvo

+0

使用.NET Frameork 4.0,Join接受IEnumerable作为参数。 – selami