Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: quiqueroal en 28 Abril 2011, 10:41 am



Título: string.this[int] me dice que es de sólo escritura :s
Publicado por: quiqueroal en 28 Abril 2011, 10:41 am
Hola compañeros. A ver cuento, soy nuevo en POO y por lo tanto en C# tambien.
Con lo que he encontrado un problema en parte de una aplicación y es que intentando copiar parte de un string en otro me dice que el string destino es de sólo escritura.. y lo que hago es lo siguiente. Este es el código del método:

Código
  1. public int MaxID(string tableName)
  2. {
  3. string IDname = "";
  4. DB EcnaDB = new DB();
  5. string Info = String.Empty;
  6.  
  7. for (int i = 0; i < tableName.Length - 1; i++)
  8. {
  9. if (tableName[i] == '.')
  10. {
  11. for (int j = i, k = 0; j < tableName.Length - 1; j++, k++)
  12. {
  13. IDname[k] = tableName[j]; //aqui me da el error//
  14. }
  15. }
  16. }
  17.  
  18. Cmd = "select ID" + IDname + " from dbo." + tableName + " where Nombre = 'Contador'";
  19. using (SqlConnection conn = EcnaDB.OpenConnection(Server))
  20. {
  21. SqlDataReader reader = EcnaDB.ReadDB(Cmd, conn);
  22. while (reader.Read())
  23. {
  24. for (int i = 0; i < reader.FieldCount; i++)
  25. {
  26. Info += reader.GetValue(i).ToString();
  27. }
  28. }
  29. }
  30. return Int32.Parse(Info);
  31. }

En el for más anidado donde pongo el comentario //aqui me da el error// me suelta lo siguiente:

Error 1 No se puede asignar la propiedad o el indizador 'string.this[int]' (es de sólo lectura)

Espero que puedan ayudarme porque es de las tipicas tonterias que uno hace y no es capaz de darse cuenta y desquician bastante... ¬¬
Un saludo y gracias!


Título: Re: string.this[int] me dice que es de sólo escritura :s
Publicado por: Novlucker en 28 Abril 2011, 13:28 pm
Lo que ocurre es que si bien puedes acceder a los caracteres de un String como si se tratase de un array, no puedes asignar sus valores del mismo modo, y es lo que intentas hacer con el IDname[k]

Saludos


Título: Re: string.this[int] me dice que es de sólo escritura :s
Publicado por: quiqueroal en 28 Abril 2011, 14:07 pm
aaa vaaale ok! muchisimas gracias! es que estoy acostumbrado a C y pense que aqui era igual... y de que modo podría hacer esto? porque es algo que claramente hay que hacer a mano, dado que lo que pretendo es quitar unos caracteres que hay al inicio de una palabra, y me temo que la clase string no ofrece ningún método que haga esto..
muchas gracias!


Título: Re: string.this[int] me dice que es de sólo escritura :s
Publicado por: Novlucker en 28 Abril 2011, 15:16 pm
IndexOf junto a Substring o Remove sería lo mejor para no recorrer caracter a caracter como lo estas haciendo :P
Sino puedes hacer uso de Stringbuilder, o simplemente concatenar caracteres :P

Saludos


Título: Re: string.this[int] me dice que es de sólo escritura :s
Publicado por: quiqueroal en 28 Abril 2011, 16:14 pm
Ok! muchisimas gracias por la informacion! voy a probar y ya cuento como ha salido!
muchas gracias en serio! un saludo! :) :)


Título: Re: string.this[int] me dice que es de sólo escritura :s
Publicado por: quiqueroal en 28 Abril 2011, 19:23 pm
perfecto! ya lo he conseguido!  ;-)  ;-) muchas gracias, porque andaba pillado y confundido por el clásico C... en serio muchas gracias! un saludo!  :D


Título: Re: string.this[int] me dice que es de sólo escritura :s
Publicado por: Novlucker en 28 Abril 2011, 19:40 pm
Todos empezamos alguna vez :P

Saludos