Ich möchte ein String-Array in einen einzelnen String konvertieren.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Ich hätte gerne so etwas wie "Hallo Welt!"
Ich möchte ein String-Array in einen einzelnen String konvertieren.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Ich hätte gerne so etwas wie "Hallo Welt!"
Antworten:
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)
anstatt eine zu verwenden empty-paranthesis
.
Eine etwas schnellere Option als die bereits erwähnte Verwendung der Join()
Methode ist die Concat () -Methode. Es ist kein leerer Begrenzerparameter Join()
erforderlich. Beispiel:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
daher ist es wahrscheinlich schneller.
Concat
ist besser, im inneren Code von Join
wird nach jedem Element ein Trennzeichen angehängt. Aber Concat
keine solchen Codes haben, es ist einfacher und direkter als Join
. Dies ist die beste Antwort.
Versuchen:
String.Join("", test);
Dies sollte eine Zeichenfolge zurückgeben, die die beiden Elemente miteinander verbindet. ""
Gibt an, dass die Zeichenfolgen ohne Trennzeichen zusammengefügt werden sollen.
"Hello "
in der Frage hatte bereits ein Leerzeichen. Wenn der Platz noch nicht vorhanden wäre, wären Sie korrekt, und die Verwendung " "
als Trennzeichen wäre sinnvoller.
Eine einfache Zeichenfolge.Concat () ist das, was Sie brauchen.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Wenn Sie auch einen Trennzeichen (Leerzeichen, Komma usw.) hinzufügen müssen, sollte string.Join () verwendet werden.
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Wenn Sie dies für ein String-Array mit Hunderten von Elementen als string ausführen müssen. Join () ist aus Sicht der Leistung besser. Geben Sie einfach ein "" (leeres) Argument als Trennzeichen an. StringBuilder kann auch aus Gründen der Leistung verwendet werden, verlängert jedoch den Code etwas.
Concat
und Join
sind schneller als die, StringBuilder
wenn Sie 4 oder weniger Zeichenfolgen verketten müssen.
Aggregate
kann auch dafür verwendet werden.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
da mehrere zusätzliche Zeichenfolgen erstellt wurden. Bitte lesen Sie stackoverflow.com/questions/217805/… für die richtige Variante von 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)
(außer bei Ihrem wird ein nachgestellter Speicherplatz hinzugefügt). Warum nicht einfach die in der Bibliothek verwenden?
Ich habe diesen Weg benutzt, um mein Projekt schneller zu machen:
RichTextBox rcbCatalyst = new RichTextBox()
{
Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();
return text;
RichTextBox.Text konvertiert Ihr Array automatisch in eine mehrzeilige Zeichenfolge!
In der akzeptierten Antwort ist String.Join keine bewährte Methode für die Verwendung. String.Concat sollte verwendet werden, da OP im ersten Element ein nachfolgendes Leerzeichen enthält: "Hallo" (anstelle eines Nulltrennzeichens).
Da OP jedoch nach dem Ergebnis "Hello World!" Abfragt, ist String.Join immer noch die geeignete Methode, aber das nachfolgende Leerzeichen sollte stattdessen in das Trennzeichen verschoben werden.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);