重新格式化字符串以逗号分隔和格式化

时间:2016-07-15 21:04:01

标签: c# string string-formatting

我有一个字符串列表......

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

我想以不同的格式输出它们,如下所示:

  

&#39;一个&#39;&#39; B&#39;&#39; C&#39;

我试过了:

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

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

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

怎么样:

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

答案 2 :(得分: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构建逗号分隔列表,可以很好地工作。

答案 3 :(得分:1)

这是我的尝试:)

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

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

答案 4 :(得分: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) + "'";