Je voudrais convertir un tableau de chaînes en une seule chaîne.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
J'aimerais avoir quelque chose comme "Hello World!"
Je voudrais convertir un tableau de chaînes en une seule chaîne.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
J'aimerais avoir quelque chose comme "Hello World!"
Réponses:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
var separator = ", ";
string.Join(separator , test);
string.Join(string.Empty, test)
plutôt que d'utiliser un fichier empty-paranthesis
.
Une option légèrement plus rapide que l'utilisation de l'utilisation déjà mentionnée de la Join()
méthode est la méthode Concat () . Il ne nécessite pas de paramètre de délimiteur vide comme le Join()
fait. Exemple:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
par conséquent, il est probablement plus rapide.
Concat
est mieux, dans le code interne de Join
, il ajoutera un séparateur après chaque élément. Mais Concat
ne pas avoir de tels codes, c'est plus simple et plus direct que Join
. C'est la première réponse.
Essayer:
String.Join("", test);
qui doit renvoyer une chaîne joignant les deux éléments ensemble. ""
indique que vous souhaitez que les chaînes soient jointes sans séparateurs.
"Hello "
de la question contenait déjà un espace à la fin. Si l'espace n'était pas déjà là, alors vous auriez raison, et utiliser " "
comme séparateur aurait plus de sens.
Vous avez besoin d'une simple chaîne: Concat ().
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Si vous devez également ajouter un séparateur (espace, virgule, etc.), string.Join () doit être utilisé.
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Si vous devez effectuer cela sur un tableau de chaînes avec des centaines d'éléments que string.Join () est meilleur du point de vue de la performance. Donnez simplement un argument "" (vide) comme séparateur. StringBuilder peut également être utilisé pour des raisons de performances, mais cela rendra le code un peu plus long.
Concat
et Join
sont plus rapides que StringBuilder
si vous avez 4 chaînes ou moins à concaténer.
Aggregate
peut également être utilisé pour le même.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
en œuvre en raison de la construction de plusieurs chaînes supplémentaires. Veuillez lire stackoverflow.com/questions/217805/… pour la variante appropriée de Aggregate
.
string ConvertStringArrayToString(string[] array)
{
//
// Concatenate all the elements into a StringBuilder.
//
StringBuilder strinbuilder = new StringBuilder();
foreach (string value in array)
{
strinbuilder.Append(value);
strinbuilder.Append(' ');
}
return strinbuilder.ToString();
}
string.Join(" ", array)
(sauf que le vôtre ajoute un espace de fin). Pourquoi ne pas simplement utiliser celui de la bibliothèque?
Dans la réponse acceptée, String.Join n'est pas la meilleure pratique selon son utilisation. String.Concat aurait dû être utilisé car OP incluait un espace de fin dans le premier élément: "Hello" (au lieu d'utiliser un délimiteur nul).
Cependant, puisque OP a demandé le résultat "Hello World!", String.Join est toujours la méthode appropriée, mais l'espace blanc de fin doit être déplacé vers le délimiteur à la place.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);