Existe-t-il un moyen rapide de convertir List<string>
en une string
séparée par des virgules en C #?
Je le fais comme ça mais peut-être y at-il un moyen plus rapide ou plus efficace?
List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = string.Join(",", ls.ToArray());
PS: Recherche sur ce site mais la plupart des solutions sont pour Java ou Python
Dans .NET 4, vous n'avez pas besoin de l'appel ToArray()
- string.Join
est surchargé pour accepter IEnumerable<T>
ou simplement IEnumerable<string>
.
Il existe potentiellement des moyens plus efficaces de le faire avant .NET 4, mais en avez-vous vraiment besoin? Est-ce réellement un goulot d'étranglement dans votre code?
Vous pourriez parcourir la liste, calculer la taille finale, allouer une StringBuilder
de taille exacte, puis faire la jointure vous-même. Cela éviterait que le tableau supplémentaire soit construit pour peu de raisons - mais cela ne ferait pas gagner beaucoup de temps et ce serait un lot plus de code.
Ce qui suit donnera une liste séparée par des virgules. Assurez-vous d'inclure une instruction using pour System.Linq
List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = ls.Aggregate((x,y) => x + "," + y);
donnera un, deux
si vous avez besoin d'un espace après la virgule, changez simplement la dernière ligne en string type = ls.Aggregate((x,y) => x + ", " + y);
Pour en savoir plus, Jon Skeets répond que le code correspondant dans .Net 4
est le suivant:
string myCommaSeperatedString = string.Join(",",ls);
Suivez ceci:
List<string> name = new List<string>();
name.Add("Latif");
name.Add("Ram");
name.Add("Adam");
string nameOfString = (string.Join(",", name.Select(x => x.ToString()).ToArray()));
C'est ainsi que je préférerais voir si je conservais votre code. Si vous parvenez à trouver une solution plus rapide, cela deviendra très ésotérique et vous devriez vraiment l'enfouir dans une méthode qui décrit ce qu'elle fait.
(ça marche toujours sans ToArray)?
static void Main(string[] args)
{
List<string> listStrings = new List<string>(){ "C#", "Asp.Net", "SQL Server", "PHP", "Angular"};
string CommaSeparateString = GenerateCommaSeparateStringFromList(listStrings);
Console.Write(CommaSeparateString);
Console.ReadKey();
}
private static string GenerateCommaSeparateStringFromList(List<string> listStrings)
{
return String.Join(",", listStrings);
}
Convertit une liste de chaînes en chaînes C # séparées par des virgules.