2009-09-18 14 views
12

Esiste un metodo in C# questo è equivalente al javascript join() ..javascript equivalente di join() e toString() in C#?

var keyStr = keyList.join("_"); 

La mia esigenza è quella di concatenare l'array di stringhe in una singola stringa con il separatore data.

e ho voluto per convertire tutta la mia matrice di stringhe in una singola stringa ... in javascript possiamo farlo chiamando toString() dell'array jabvascript

C# toString di un array si limita a stampare il tipo informazione. Se usiamo toString su altri tipi come int, restituisce la rappresentazione di stringa di un int. Ma perché questo non è stato implementato nell'array di stringhe. non sarebbe strano?

E

risposta

30

È possibile utilizzare string.Join():

string.Join("_", array); 

o, per gli elenchi:

string.Join("_", list.ToArray()); 

Conversione di un array di stringhe in una singola stringa è fatto esattamente nello stesso modo: con string.Join() :

string.Join(" ", stringarray); 

Dan Elliott ha anche un buon metodo di estensione che puoi usare per essere un po 'più vicino a JavaScript, sintassi-saggio.

+0

grazie Johannes. Join funziona perfettamente, ma il mio secondo requisito è quello di convertire l'array di stringhe in un valore di stringa singola ... – RameshVel

+1

@Ramesh è possibile utilizzare String.Join ("", stringArray) o String.Concat (stringArray) –

+0

Spiacente, frainteso. .. due volte ormai ... ho bisogno di ... altro ... caffè ... – Joey

0

Prova il codice qui sotto.

string[] arr=new string[]{"aa","bb","cc"}; 
string.Join("-", arr); 
2

se si desidera aggiungere la funzionalità per una matrice di stringhe si potrebbe fare con un metodo di estensione

public static class ArrayExtension 
{ 

    public static string AsString(this string[] array, string seperator) 
    { 
    return string.Join(seperator, array); 
    } 
} 

Poi si può scrivere:

var keyStr = keyList.AsString("_"); 
+0

grazie Dan, sembra molto vicino javascript ... – RameshVel