web-dev-qa-db-fra.com

convertir un tableau de chaînes en chaînes

Je voudrais convertir un tableau de chaînes en une seule chaîne.

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

Je voudrais avoir quelque chose comme "Hello World!"

115
user522860
string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string.Join("", test);
218
Dave Ward

Essayer:

String.Join("", test);

qui devrait renvoyer une chaîne joignant les deux éléments. "" indique que vous souhaitez que les chaînes soient jointes sans séparateurs.

18
davidg

Une option légèrement plus rapide que d'utiliser la méthode Join() déjà mentionnée est la méthode Concat () Il ne nécessite pas de paramètre de délimiteur vide, contrairement à Join(). Exemple:

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

string result = String.Concat(test);

par conséquent, c'est probablement plus rapide.

16
Quality Catalyst

Une simple chaîne.Concat () est ce dont vous avez besoin.

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.), alors 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 ceci sur un tableau de chaînes avec des centaines d'éléments, string.Join () est préférable du point de vue de la performance. Donnez simplement un argument "" (vide) en tant que séparateur. StringBuilder peut également être utilisé pour des raisons de performances, mais cela allongera un peu le code.

12
ePandit

Aggregate peut également être utilisé pour la même chose.

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
2
vivek nuna
    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();
    }
1
programmer

Dans la réponse acceptée, String.Join n'est pas la meilleure pratique par 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, étant donné que OP a demandé le résultat "Hello World!", String.Join est toujours la méthode appropriée, mais les espaces finaux doivent plutôt être déplacés vers le délimiteur.

// string[] test = new string[2];

// test[0] = "Hello ";
// test[1] = "World!";

string[] test = { "Hello", "World" }; // Alternative array creation syntax 
string result = String.Join(" ", test);

J'ai utilisé cette méthode pour accélérer mon projet:

RichTextBox rcbCatalyst = new RichTextBox()
{
    Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();

return text;

RichTextBox.Text convertira automatiquement votre tableau en chaîne multiligne!

0
Bamdad