Pregunta

¡Es hora del refactor del viernes!

Tengo un objeto que uso para generar sentencias SQL.

oDb.From se establece una vez. Luego, los metadatos pueden agregar unión (es) a lo largo del tiempo hasta que lo combinemos todo y lo pasemos de nuevo.

Entonces la Q es, ¿Qué cantidad de veces mantengo la sintaxis oDb.From + = antes de reemplazarla con sbFrom.Append ()

¿Es eso # 3, 4 o 15 veces?

¿O es realmente una cuestión de contenido, y si es así, cuál es el # mágico?

TIA

¿Fue útil?

Solución

Lea http://www.codinghorror.com/blog/archives/001218. html

La clase StringBuilder está diseñada para escenarios en los que está construyendo cadenas gigantescas, y el uso de la concatenación de cadenas normal realmente sería demasiado lento.

Lo más probable es que para el tipo de longitudes de cuerda con las que está lidiando realmente no haga ninguna diferencia, simplemente use lo que le resulte más cómodo.

Otros consejos

Regla práctica totalmente poco científica: lo haría por cualquier cosa sobre tres elementos, no por el aumento del rendimiento, sino por un buen hábito (con suerte).

Si tengo que agregar más de dos elementos a una Cadena, casi siempre uso StringBuilder (encuentro que si agrego más de dos, inevitablemente habrá más a medida que la gente comience a agregar a mi código ... entonces StringBuilder es ya está ahí para ellos).

Yo diría cualquier cosa que espere superar los 1-5 MB de longitud o cualquier cosa que asigne muchas cadenas en pequeños trozos.

No es nada poco científico: leí una vez un artículo en el que el generador de cadenas .NET se vuelve más eficiente después de 5 concatenaciones. Esto es cuando normalmente uso un generador de cadenas.

Además, creo que la legibilidad realmente entra en juego con respecto a esto y también prefiero el formato de cadena en algunos casos sobre ambos.

Utilizo StringBuilder cuando el número de concatenación en un algoritmo crece sobre O (n). Si el número de concatenación es O (1), la mayoría de las veces la legibilidad no se ve afectada (excepto si la cadena es muy grande, lo que no es muy frecuente).

O cuando sé que hay una cadena que será lo suficientemente grande. (Más de 100k de caracteres)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top