Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Edu en 19 Marzo 2011, 20:59 pm



Título: Pregunta tonta sobre declaracion...
Publicado por: Edu en 19 Marzo 2011, 20:59 pm
Hola, tengo una pregunta bastante tonta q tendria q saberla..

Cuando hago esto:

Código:
string[] a;

a[0] = "Hola";

Me sale error porq no esta declarada, esq tendria q hacer lo de string[] a = new string[10];
pero yo no quiero ponerle un valor, no se si seran 10 elementos, y me lo pide si o si :S como hago?


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: leogtz en 20 Marzo 2011, 03:10 am
Forzosamente debes de asignarle espacio.

¿para qué estás usando esto?


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Edu en 20 Marzo 2011, 05:36 am
Es para un proyecto q intento hacer pero le encontrare la vuelta para saber cual es el tamaño q tendra entonces, gracias!
Y entonces como es la cosa? yo puedo declararlo haciendo string[] a; y luego para poder ponerle algun elemento tengo q instanciarlo, poniendo a = new string[valor] entonces?


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Xephiro en 20 Marzo 2011, 06:23 am
Es para un proyecto q intento hacer pero le encontrare la vuelta para saber cual es el tamaño q tendra entonces, gracias!
Y entonces como es la cosa? yo puedo declararlo haciendo string[] a; y luego para poder ponerle algun elemento tengo q instanciarlo, poniendo a = new string[valor] entonces?

¿Y una lista dinamica no te sirve para tu proyecto?

porque de esa forma no tendrías que fijarle un espacio fijo.


Lo otro es que cada vez que tu array se llene lo re definas con mas espacio, pero esto te siginificaria tener que almacenar todo a otro array en forma temporal y luego volver a almacenar los datos en tu array re definido.
(no es muy buena solucion xD)


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Keyen Night en 20 Marzo 2011, 14:15 pm
La mejor opción realmente es la lista dinámica.


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Akai en 20 Marzo 2011, 14:28 pm
Lo otro es que cada vez que tu array se llene lo re definas con mas espacio, pero esto te siginificaria tener que almacenar todo a otro array en forma temporal y luego volver a almacenar los datos en tu array re definido.

De hecho, eso hace trabajo innecesario. Simplemente, crea un nuevo array del tamaño que necesites, copia, borra el primero y devuelve el otro.

(Listas dinámicas pueden tener problemas en cuanto a coste de acceso o un overhead de memoria según estén implementadas para reducir dicho tiempo de acceso)


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Edu en 20 Marzo 2011, 14:40 pm
Entonces no era una pregunta tonta, bien por mi xD
Gracias a todos! ahora me queda claro y hare lo q dijieron por ahi de copiar a otro array nuevo, vere q hago gracias!


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: [D4N93R] en 20 Marzo 2011, 18:07 pm
Si exacto, la solución para eso es una lista, collection, queue, stack, depende de tus requerimientos.


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Edu en 20 Marzo 2011, 18:39 pm
Gracias!, y no es lo mismo usar arrays q listas? si es q con lista te referis a List<int> = new List<int>(10) no? seria lo mismo porq me pide valor si o si ja.

Aca dejo un ejemplo de como quiero hacer:

Código
  1. string[] a;
  2.  
  3. for (int i = 0; i < texto.Length; i++)
  4. a[i] = "Hola i vale " + i.ToString();
  5.  
  6.  

Pero eso da error entonces cual piensan q es la mejor forma para hacerlo entonces? esq ahora me intereso lo de la Lista.

Ese codigo lo hice aca asique pero estara bien, solo q da error por el problema de q tengo q ponerle un valor si o si


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Xephiro en 20 Marzo 2011, 18:54 pm
Gracias!, y no es lo mismo usar arrays q listas? si es q con lista te referis a List<int> = new List<int>(10) no? seria lo mismo porq me pide valor si o si ja.

Aca dejo un ejemplo de como quiero hacer:

Código
  1. string[] a;
  2.  
  3. for (int i = 0; i < texto.Length; i++)
  4. a[i] = "Hola i vale " + i.ToString();
  5.  
  6.  

Pero eso da error entonces cual piensan q es la mejor forma para hacerlo entonces? esq ahora me intereso lo de la Lista.

Ese codigo lo hice aca asique pero estara bien, solo q da error por el problema de q tengo q ponerle un valor si o si

Utiliza ArrayList, no es necesario especificar su largo.

Código:
ArrayList al = new ArrayList();

// Agregas un objeto cualquiera
al.Add(object);

De esa forma ingresas la cantidad de datos que quieras.


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Edu en 20 Marzo 2011, 19:54 pm
Gracias eso me servira!


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Edu en 20 Marzo 2011, 22:53 pm
No encuentro el ArrayList, q referencia tengo q agregar o q?


Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Xephiro en 20 Marzo 2011, 22:58 pm
Amigo, buscar un poco en google no le hace mal a nadie.

usa lo siguiente:
Código:
using System.Collections;



Título: Re: Pregunta tonta sobre declaracion...
Publicado por: Edu en 20 Marzo 2011, 23:05 pm
No me anda google, gracias!