Gostaria de converter uma matriz de string em uma única string.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Eu gostaria de ter algo como "Olá, mundo!"
Gostaria de converter uma matriz de string em uma única string.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Eu gostaria de ter algo como "Olá, mundo!"
Respostas:
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)
ao invés de usar um empty-paranthesis
.
Uma opção um pouco mais rápida do que usar o uso já mencionado do Join()
método é o método Concat () . Ele não requer um parâmetro delimitador vazio, como Join()
faz. Exemplo:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
portanto, é provavelmente mais rápido.
Concat
é melhor, no código interno de Join
, anexará o separador após cada item. Mas, Concat
não tendo esses códigos, é mais simples e mais direto que Join
. Esta é a resposta perfeita.
Experimentar:
String.Join("", test);
que deve retornar uma string que une os dois elementos. ""
indica que você deseja que as cadeias sejam unidas sem separadores.
"Hello "
na pergunta já tinha um espaço à direita. Se o espaço ainda não estivesse lá, você estaria correto, e usar " "
como separador faria mais sentido.
Uma string.Concat () simples é o que você precisa.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Se você também precisar adicionar um separador (espaço, vírgula etc.), use string.Join ().
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Se você precisar fazer isso em uma matriz de strings com centenas de elementos do que string.Join () é melhor pelo ponto de vista da performance. Apenas dê um argumento "" (em branco) como separador. O StringBuilder também pode ser usado para garantir o desempenho, mas tornará o código um pouco mais longo.
Concat
e Join
são mais rápidos que o StringBuilder
se você tiver 4 ou menos seqüências de caracteres para concatenar.
Aggregate
também pode ser usado para o mesmo.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Join
devido a várias seqüências extras construídas. Leia stackoverflow.com/questions/217805/… para obter a variante adequada 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)
(exceto o seu adiciona um espaço à direita). Por que não usar apenas o da biblioteca?
Usei dessa maneira para tornar meu projeto mais rápido:
RichTextBox rcbCatalyst = new RichTextBox()
{
Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();
return text;
RichTextBox.Text converterá automaticamente sua matriz em uma seqüência de linhas múltiplas!
Na resposta aceita, String.Join não é uma prática recomendada por seu uso. String.Concat deveria ser usado, pois o OP incluía um espaço à direita no primeiro item: "Hello" (em vez de usar um delimitador nulo).
No entanto, como o OP solicitou o resultado "Hello World!", String.Join ainda é o método apropriado, mas o espaço em branco à direita deve ser movido para o delimitador.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);