2016-07-15 86 views
2

我有一个字符串列表...格式化字符串用逗号分隔并格式化

var strings = new List<String>() { "a", "b", "c" }; 

我想输出它们以不同的格式,例如:

“A”, 'b', 'C'

我已经试过:

string.Join("','",strings); 

String.Join(",", String.Format("'{0}'",strings) 
+0

你的第一次尝试应该工作。错误/错误输出是什么? –

回答

2

你的第一次尝试应该工作,但是你需要前缀和后缀"'"的整体效果。

或者,你可以这样做:

var strings = new List<string>() { "a", "b", "c" } 
        .Select(x => string.Format("'{0}'", x)); 

var result = string.Join(",", strings); 

另一种选择是使用StringBuilder代替,

var strings = new List<string>() { "a", "b", "c" }; 
var builder = new StringBuilder(); 

foreach (var s in strings) 
{ 
    builder.AppendFormat(",'{0}'", s); 
} 

var result = builder.ToString().Trim(","); 

在这种情况下,我建议你在LINQ方法为它的简单,但不要”如果您真正的问题更复杂,请排除StringBuilder,因为它可以更清楚地显示每个单独项目格式的意图。

使用StringBuilder格式化每个项目的内容,然后使用LINQ构建逗号分隔列表的混合方法可以很好地工作。

2

你的第二次尝试非常接近。试试这个:

string.Join(",", strings.Select(s => $"'{s}'")) 
2

如何:

String.Join(",", strings.Select(s => String.Format("'{0}'", s))); 
1

这是我尝试:)

var result = "'" + string.Join("','", strings) + "'"; 

var result = string.Format("'{0}'", string.Join("','", strings)); 
0
using System.Linq; 

var result=strings.Select(x=> "'" + x + "'").Aggregate((x, y) => x + "," + y ); 

or 
var result=string.Format("'{0}'", string.Join("','", strings)); 

or 
var result="'" + string.Join("','", strings) + "'";