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

Reformat string to be comma separated and formatted

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

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

我想以不同的格式输出它们,像这样:

'a','b','c'

我试过了:

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

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

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

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

怎么样:

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

您的第一次尝试应该可行,但您需要在整体结果前添加前缀和后缀 "'"

或者,您可以这样做:

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 构建以逗号分隔的列表,这种方法效果很好。

这是我的尝试:)

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

var result = string.Format("'{0}'", string.Join("','", strings));
 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) + "'";