List test = new List(); test.Add("test's"); test.Add("test"); test.Add("test's more"); ssortingng s = ssortingng.Format("'{0}'", ssortingng.Join("','", test));
maintenant le s est 'test's','test','test's more'
mais je dois remplacer les guillemets intérieurs par 2 guillemets simples
comme ceci: 'test''s','test','test''s more'
mise à jour: je l’ai obtenu comme ci-dessous, mais je préférerais une méthode plus propre si possible.
ssortingng s = ssortingng.Format("`{0}`", ssortingng.Join("`,`", test)).Replace("'", "''").Replace("`", "'");
Cela devrait fonctionner:
List test = new List (); test.Add("test's"); test.Add("test"); test.Add("test's more"); ssortingng s = ssortingng.Join("','", test.Select(i => i.Replace("'", "''")));
Et si vous voulez vraiment tout mettre entre guillemets simples:
ssortingng s = ssortingng.Format("'{0}'", ssortingng.Join("','", test.Select(i => i.Replace("'", "''"))));
Cela peut être plus facile que d’utiliser ssortingng.replace
ssortingng s = "'" + Ssortingng.Join("','", test) + "'";
Essaye ça:
ssortingng s = ssortingng.Join(",", test.Select(x => ssortingng.Format("'{0}'", x.Replace("'", "''"))));
A propos, il n’y a pas d’apostrophe dans les “tests” – les apostrophes ne sont pas utilisés pour les pluriels .
Cela ne convient pas à tout le monde, mais j’aime bien créer des extensions d’assistance pour ce type de tâches et les placer dans un espace de noms “utilitaire”:
public static class ListExtensions { public static void AddDoubleQuoted(this List list, ssortingng input) { input = input.Replace("'", "''"); list.Add(input); } } List test = new List (); test.AddDoubleQuoted("test's"); test.AddDoubleQuoted("test"); test.AddDoubleQuoted("test's more"); ssortingng s = ssortingng.Format("'{0}'", ssortingng.Join("','", test));
Vous pouvez toujours encoder des guillemets avant de construire votre chaîne.
J’aime une version sans remplacer:
using System.Linq; (...) ssortingng s = Ssortingng.Join(", ", from l in MyList select Ssortingng.Format("'{0}'", l));