elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Añadir items a un array sin usar List, ni crear nuevos arrays en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Añadir items a un array sin usar List, ni crear nuevos arrays en C#  (Leído 4,119 veces)
RevolucionVegana


Desconectado Desconectado

Mensajes: 477



Ver Perfil
Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« en: 24 Mayo 2017, 18:57 pm »

Hola a todos, necesito ir metiendo palabras conforme el usuario vaya escribiéndolas, es decir incrementar el tamaño del array en 1 y meter su valor, he visto que para esto se usan las listas pero no puedo utilizar listas para este ejercicio, y tampoco puedo crear otro array copiando el actual y sumándole la nueva palabra tiene que ser en el mismo XD, no quiero que me deis nada hecho simplemente saber si es posible hacerlo y que se utilizaría, con un enlace me iría bien, gracias y un saludo!


En línea

HAS DICHO ALGO NENAAAAAA?!
El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #1 en: 24 Mayo 2017, 20:14 pm »

Buen día.

Si has leído un poquito los conceptos de la programación te habrás topado con algún texto que dice que un array es una variable de referencia, es decir, que apunta a una posición de memoria. En .NET es igual, lo que tienes que hacer es precisamente crear un nuevo array, copiar los elementos, agregar el nuevo elemento al final y después hacer que tu viejo array apunte al nuevo.

Otra cosa, no has dicho si estás programando en C# o en VisualBasic. VisualBasic utiliza la función ReDim para redimensionar arreglos sin alterar los elementos que contiene. Pero internamente utiliza el mismo procedimiento que te acabo de describir.


En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
RevolucionVegana


Desconectado Desconectado

Mensajes: 477



Ver Perfil
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #2 en: 24 Mayo 2017, 20:56 pm »

Buen día.

Si has leído un poquito los conceptos de la programación te habrás topado con algún texto que dice que un array es una variable de referencia, es decir, que apunta a una posición de memoria. En .NET es igual, lo que tienes que hacer es precisamente crear un nuevo array, copiar los elementos, agregar el nuevo elemento al final y después hacer que tu viejo array apunte al nuevo.

Otra cosa, no has dicho si estás programando en C# o en VisualBasic. VisualBasic utiliza la función ReDim para redimensionar arreglos sin alterar los elementos que contiene. Pero internamente utiliza el mismo procedimiento que te acabo de describir.

Buenas muchas gracias por la respuesta, estoy programando en C#, la cuestión está en que, no puedo hacerlo de esa forma porque está dentro de un bucle y esto tendría que ser 20 veces, entonces si pudiese concatenarle al nombre del array un numero (al nombre del array) entonces no habría problema pero no se si se puede hacer esto, pero bueno el caso es que esta forma aunque es bastante interesante en este caso no me serviría, gracias y un saludo!
En línea

HAS DICHO ALGO NENAAAAAA?!
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #3 en: 24 Mayo 2017, 21:16 pm »

Aunque te hayan dicho que uses sí o sí, un array, el como lo hagas es ya cosa tuya.. luego, la forma incorrecta de hacerlo, es redimensionar cada vez que se añade una palabra... ridículo e innecesario.


Código:
array Palabras()
entero NumPalabras

Funcion AñadirItem(String Palabra)
   si numpalabras mod 100 = 0 luego
       redimensionamos array + 100 elementos
   Fin si

   Palabras(numPalabras)= palabra
   Incrementar Numpalabras
Fin funccion

Este simple código, hace que al menos no redimensiones ni copies un array con cada añadido, si no con cada 100 añadidos (ó 1000, o los que tu quieras poner en función del destino que haya de tener).

De todos modos, en efecto es ineficiente. el uso de unn array se circunscribe precisamente a cuando se conoce el tamaño exacto o al menos se conoce que no supera cierto tamaño.
Cuando el número de elementos que haya de ser contenidos sea absolutamente incierto, habrá que usar una colección que añada elementos sin una sobrecarga excesiva... lista enlazada, tablahash, pila, cola,  árbol, etc... será mejor en estos casos que un array.
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #4 en: 24 Mayo 2017, 22:46 pm »

claro que se puede, usa el metodo push()

https://msdn.microsoft.com/en-us/library/system.collections.stack.push(v=vs.110).aspx

Aunque usa un objeto tipo stack, pues viene a ser lo mismo que una lista o un arreglo.

Personalmente prefiero el uso de listas, mucho más moldeables y soportan una gran cantidad de variaciones para sobrecarga.

Te ahorras todo simplemente con esto:
Código:
List<string> list = new List<string>();

// add
list.Add("element");

// remove
list.Remove("element");
En línea


Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #5 en: 24 Mayo 2017, 23:52 pm »

Hay muchos tipos que encapsulan un Array "expandible" cuyo tamaño aumenta dinámicamente cuando es necesario, como por ejemplo el tipo ArrayList, List, Tuple, Dictionary, o Stack, entre otros. Cada tipo evidentemente ha sido diseñado para un propósito distinto, se debe escojer el más adecuado para cada ocasión/problema, pero cualquiera de ellos te sirve para cumplir la función básica de almacenar elementos en una colección expandible.



tampoco puedo crear otro array copiando el actual y sumándole la nueva palabra tiene que ser en el mismo XD

Eso no es posible, un Array es representado como una colección de tamaño fijo. Como ya te han explicado más arriba, precisamente debes crear un nuevo Array de un tamaño mayor en +1 al que copiarle los elementos del antiguo Array y poder almacenar un elemento más. Por algo es que la clase Array expone un método llamado Array.Resize().

Sinceramente, ¿qué te impide usar un List?, es un tipo mucho más flexible que el Array.

Saludos!
« Última modificación: 25 Mayo 2017, 01:11 am por Eleкtro » En línea

RevolucionVegana


Desconectado Desconectado

Mensajes: 477



Ver Perfil
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #6 en: 25 Mayo 2017, 01:51 am »

Muchas gracias a todos por las respuestas me habéis aclarado muchas cosas y prácticamente me habéis dado todas o casi todas las opciones posibles, gracias! El hecho de que no pueda utilizar List es porque lo indicaba el ejercicio entonces me han entrado ganas de saber como querría que lo hiciese, de nuevo gracias y un saludo a todos!
En línea

HAS DICHO ALGO NENAAAAAA?!
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Añadir items a un array sin usar List, ni crear nuevos arrays en C#
« Respuesta #7 en: 25 Mayo 2017, 17:30 pm »

El hecho de que no pueda utilizar List es porque lo indicaba el ejercicio entonces me han entrado ganas de saber como querría que lo hiciese, de nuevo gracias y un saludo a todos!

Eso es porque el cabrón del profesor sabe que la mejor manera es usando List.  :laugh: :laugh: :laugh:
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mi algoritmo para eliminar datos de un array (tengo que usar 5 arrays)
Java
KaRaLLo 2 4,963 Último mensaje 27 Enero 2012, 08:36 am
por bewa
Añadir varios items al carrito codeigniter
PHP
marko1985 2 1,957 Último mensaje 19 Junio 2014, 04:36 am
por JorgeEMX
Ayuda listview añadir y eliminar items en espesifico
Programación Visual Basic
Brian1511 1 1,884 Último mensaje 7 Julio 2014, 16:52 pm
por plexo
Añadir nuevos elementos array existente
PHP
teudiss 1 1,578 Último mensaje 16 Septiembre 2014, 13:57 pm
por ivancea96
obtener json (list) de una peticion get y evaluar los items
Programación General
Beginner Web 3 4,410 Último mensaje 9 Noviembre 2020, 16:51 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines