List test = new List();
test.Add(\"test\'s\");
test.Add(\"test\");
test.Add(\"test\'s more\");
string s = string.Format(\"\'{0}\'\", string.J
This should work:
List<string> test = new List<string>();
test.Add("test's");
test.Add("test");
test.Add("test's more");
string s = string.Join("','", test.Select(i => i.Replace("'", "''")));
And if you're really looking to enclose the whole thing in single quotes:
string s = string.Format("'{0}'", string.Join("','", test.Select(i => i.Replace("'", "''"))));
I like a version without Replace:
using System.Linq;
(...)
string s = String.Join(", ", from l in MyList select String.Format("'{0}'", l));
You can always encode quotes before you build your string.
Try this:
string s = string.Join(",", test.Select(x => string.Format("'{0}'", x.Replace("'", "''"))));
By the way, there's no apostrophe in "tests" - apostrophes aren't used for plurals.
This may be easier than using string.replace
string s = "'" + String.Join("','", test) + "'";
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:
public static class ListExtensions
{
public static void AddDoubleQuoted(this List<string> list, string input)
{
input = input.Replace("'", "''");
list.Add(input);
}
}
List<string> test = new List<string>();
test.AddDoubleQuoted("test's");
test.AddDoubleQuoted("test");
test.AddDoubleQuoted("test's more");
string s = string.Format("'{0}'", string.Join("','", test));