A partir de una breve mirada con Reflector, parece que String.Substring()
asigna memoria para cada subcadena. ¿Estoy en lo cierto de que este es el caso? Pensé que no sería necesario ya que las cadenas son inmutables.¿Por qué .NET crea nuevas subcadenas en lugar de señalar las cadenas existentes?
Mi objetivo subyacente era crear un método IEnumerable<string> Split(this String, Char)
extensión que asigna ninguna memoria adicional.
No lo he pensado muy bien, o miré la implementación de StringBuilder con Reflector, pero ¿funcionaría un método IEnumerable Split (este StringBuilder, Char)? –
Domenic
If String.Subcadena() no asigna nueva memoria, la cadena no será inmutable –