Joindre la liste des chaînes à séparer par des virgules et mettre entre guillemets

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));