将字符串列表连接到逗号分隔并用单引号引起来
List<string> test = new List<string>();
test.Add("test's");
test.Add("test");
test.Add("test's more");
string s = string.Format("'{0}'", string.Join("','", test));
现在 s 是'test's','test','test's more'
但我需要用 2 个单引号替换内部引号,
如下所示: 'test''s','test','test''s more'
更新:我让它按如下方式工作,但如果可能的话,我更喜欢一种更清洁的方式。
string s = string.Format("`{0}`", string.Join("`,`", test)).Replace("'", "''").Replace("`", "'");
List<string> test = new List<string>();
test.Add("test's");
test.Add("test");
test.Add("test's more");
string s = string.Format("'{0}'", string.Join("','", test));
now the s is 'test's','test','test's more'
but I need to replace the inner quotes with 2 single quotes
like this: 'test''s','test','test''s more'
update: I got it to work as below, but I would prefer a cleaner way if possible.
string s = string.Format("`{0}`", string.Join("`,`", test)).Replace("'", "''").Replace("`", "'");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这应该可行:
如果您真的想将整个内容用单引号引起来:
This should work:
And if you're really looking to enclose the whole thing in single quotes:
这可能比使用 string.replace 更容易
This may be easier than using
string.replace
使用字符串插值。这里不需要
String.Replace
。Using string interpolation.
String.Replace
is not required here.试试这个:
顺便说一句,“tests”中没有撇号 - 撇号不用于复数。
Try this:
By the way, there's no apostrophe in "tests" - apostrophes aren't used for plurals.
它并不符合每个人的口味,但我喜欢为此类任务创建帮助程序扩展,并将它们放入“实用程序”命名空间中:
It isn't to everyone's taste, but I like to create helper extensions for these kinds of tasks, and put them into a "utility" namespace:
我喜欢没有替换的版本:
I like a version without Replace: