2011-01-30 34 views
88

Mi piacerebbe convertire un array di stringhe in una stringa singola.converte array di stringhe in stringa

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

Mi piacerebbe avere qualcosa di simile "Ciao Mondo!"

risposta

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

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

string.Join("", test); 
+3

+1 - Ho rimosso lo spazio nel join per rendere questo corretto, come sottolineato da @davidg – jmort253

+0

Grazie. Non ho notato lo spazio finale, anche se l'ho incollato correttamente nella mia risposta. –

+2

Avevo anche bisogno di mettere un separatore tra le mie stringhe (coma e spazio) così ho usato: 'var separator =", ";' 'string.Join (separatore, test);' – ripegooseberry

11

Prova:

String.Join("", test); 

che dovrebbe restituire una stringa che unisce i due elementi insieme. "" indica che si desidera unire le stringhe senza separatori.

+0

Questo non renderebbe "HelloWorld!" senza uno spazio tra le parole? – jmort253

+1

@ jmort253 - La stringa originale "Hello" nella domanda aveva già uno spazio finale. Se lo spazio non fosse già lì, allora saresti corretto, e usare '" "' come separatore avrebbe più senso. – davidg

+0

+1 - Buon punto! Non ho visto lo spazio extra. – jmort253

1
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(); 
    } 
+3

Questo è solo manualmente l'implementazione di 'string.Join (" ", array)' (tranne il tuo aggiunge uno spazio finale). Perché non usare solo quello in biblioteca? – davidg

+1

@davidg - Ashwini è probabilmente nuovo. Imparare a usare gli strumenti esistenti e superare la mentalità del college "Devo farlo da solo" richiede un po 'di tempo per abituarsi. Lo ha fatto per me. Alla fine, le persone si chiedono perché i loro colleghi siano in grado di codificare i cerchi intorno a loro, e quindi vedono il valore nelle librerie di codici e riutilizzo. – jmort253

+0

qualsiasi cosa abbia ricordato ho cercato di aiutare tutto questo .. se qualcuno ha una soluzione migliore sei sempre libero di postarlo .. @ jmort: sono passati 4 anni da quando lavoro ... non ho la mentalità di Quando parli di ... qualcuno non è perfetto ... negli anni di esperienza che hai imparato ... non lo negherai questo fatto .. – programmer

-3

Ti piace questa:

string str= test[0]+test[1]; 

È anche possibile utilizzare un ciclo:

for(int i=0; i<2; i++) 
    str += test[i]; 
5

Un semplice String.Concat() è quello che ti serve.

string[] test = new string[2]; 

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

string result = string.Concat(test); 

Se hai bisogno anche di aggiungere un separatore (spazio, virgola, ecc), allora, string.join() è consentito.

string[] test = new string[2]; 

test[0] = "Red"; 
test[1] = "Blue"; 

string result = string.Join(",", test); 

Se si deve eseguire questo su una matrice di stringhe con hundereds di elementi di string.join() è meglio punto di vista performace. Basta dare un argomento "" (vuoto) come separatore. StringBuilder può anche essere usato per motivi di prestazioni, ma renderà il codice un po 'più lungo.

0

Ho usato questo modo di fare il mio progetto più veloce:

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

return text; 

RichTextBox.Text convertirà automaticamente il vostro array in una stringa multilinea!

6

Un'opzione leggermente più veloce rispetto all'uso del già citato uso del metodo Join() è il metodo Concat(). Non richiede un parametro delimitatore vuoto come fa Join(). Esempio:

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

string result = String.Concat(test); 

quindi è più veloce.

-1

Nella risposta accettata, String.Join non è la migliore procedura per il suo utilizzo. String.Concat dovrebbe essere utilizzato poiché OP includeva uno spazio finale nel primo elemento: "Hello" (invece di utilizzare un delimitatore null).

Tuttavia, poiché OP ha richiesto il risultato "Hello World!", String.Join è ancora il metodo appropriato, ma gli spazi bianchi finali devono invece essere spostati sul delimitatore.

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

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

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

Aggregate può essere utilizzato anche per lo stesso.

Problemi correlati