Título: Copiar un List en otro (Por valor no por referencia) Publicado por: BlaineMonkey en 16 Febrero 2010, 12:46 pm ¿Hay algún método que copie de un List a otro sin que sea por referencia? Es decir que pueda modificar cualquiera de los dos y los cambios no se afecten en ambos List.
He probado a pasarle la lista en el constructor, pero esto lo hace por referencia. ¿La única manera es recorrer la lista original e ir creando los nuevos objetos con los mismos valores que la original? Título: Re: Copiar un List en otro (Por valor no por referencia) Publicado por: raul338 en 16 Febrero 2010, 13:41 pm Exacto....sino serializas la lista en memoria y despues lo vuelcas a la nueva lista. Obtienes una nueva lista literalmente igual a la primera, pero no son las mismas (con que cambies una, no cambia la otra)
http://msdn.microsoft.com/es-es/library/bb972188.aspx es un ejemplo un poco largo, se puede "achicar", aunque no encuentro el articulo originial de donde lo aprendi :-\ Título: Re: Copiar un List en otro (Por valor no por referencia) Publicado por: BlaineMonkey en 17 Febrero 2010, 12:33 pm Gracias por tu ayuda. Me ha servido.
Título: Re: Copiar un List en otro (Por valor no por referencia) Publicado por: raul338 en 17 Febrero 2010, 13:35 pm Encontre mi proyecto de ejemplo :P
Si tienes esta clase (no importa que tenga propiedades, eventos, etc, se copia igual ;-) Código
Lo que haces es agregarle el atributo Serializable, y si quieres la interfaz IClonable que te agrega el metodo Clone (aunque no recuerdo porque no me funciono a mi, asi que implemente el metodo Clonar solo :P No olvides de importar los espacios de nombres, son vitales para que funcione el codigo Te quedaria asi Código
y en la funcion Clonar pones esto: Código
Por lo cual todo junto te quedaria asi: Código
Tal vez alguno diga que tenga un par de bugs o algo asi. Nose, a mi me funciono ;-) jeje Espero que te sirva! Nota: La funcion Clonar esa sirve literalmente para cualquier cosa, se puede adaptar para clonar cualquier clase del net framework (el unico requisito es que sea serializable ovbio no? :P) Título: Re: Copiar un List en otro (Por valor no por referencia) Publicado por: Skeletron en 18 Febrero 2010, 02:48 am Tio.. creo que existe el metodo CLONE o COPY en los arrays... ese metodo hace la COPIA.. sin referencia...
Si mal no recuerdo Título: Re: Copiar un List en otro (Por valor no por referencia) Publicado por: raul338 en 18 Febrero 2010, 13:16 pm Solo en los arrays. El metodo que di funciona (sean arrays o no) para clases personalizadas uqe por defecto se copian por referencia
|