我有一个字符串列表......
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 )
答案 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) + "'";