Ho una matrice di stringhe (dalla A alla E) che voglio unire in una stringa ("A B C D E"). Dovrei passare attraverso l'array o usare la funzione Join?Creazione di una stringa da una matrice di stringhe. Metodo più veloce?
Dim MyArray(5) as String
Dim MyString as String
MyArray(1) = "A"
MyArray(2) = "B"
MyArray(3) = "C"
MyArray(4) = "D"
MyArray(5) = "E"
Quale è più veloce e più consigliabile?
Questo?
MyString = MyArray(1)
For i = 2 To 5
MyString = MyString & " " & MyArray(i)
Next
O questo?
MyString = Join(MyArray, " ")
presumo unirsi sarà più veloce come è implementato in codice nativo, mentre si sta crescendo la stringa ad ogni iterazione con il ciclo e chiamare due volte l'operatore di concatenazione., Forse ottenendo il tempo di sistema prima e dopo (con un array più ampio) potrebbe dare qualche indizio su quale sia meglio. – Tensibai
Consiglierei di utilizzare la soluzione che è più leggibile per te personalmente. Per me, questo sarebbe il Join perché è molto più semplice dal punto di vista concettuale ed evita errori off-by-one e altri possibili bug sottili. Perché credi che le prestazioni di questo particolare pezzo di codice siano più importanti per la tua applicazione rispetto a qualsiasi altra cosa faccia la tua applicazione? – mellamokb
Quando si crea una stringa, non concatenare mai una stringa lunga con due stringhe corte (forzando la copia della stringa lunga due volte). Quindi piuttosto che 'MyString = MyString &" "& MyArray (i)' usa 'MyString = MyString & (" "& MyArray (i))' – brettdj