Foros del Web » Programación para mayores de 30 ;) » .NET »

Comparar el contenido de 2 objetos

Estas en el tema de Comparar el contenido de 2 objetos en el foro de .NET en Foros del Web. Hola gente. Una pregunta por favor. Hay alguna manera de comparar el contenido de 2 instancias de una misma clase sin comparar cada propiedad del ...
  #1 (permalink)  
Antiguo 29/01/2007, 14:53
 
Fecha de Ingreso: julio-2006
Mensajes: 98
Antigüedad: 17 años, 9 meses
Puntos: 0
Comparar el contenido de 2 objetos

Hola gente. Una pregunta por favor. Hay alguna manera de comparar el contenido de 2 instancias de una misma clase sin comparar cada propiedad del obejto ?

ejemplo:

dim a as new person
dim b as new person

a.pro1 = "a"
a.pro2 ="1

b.pro1 = "a"
b.pro2 ="2

Como puedo comparar el objeto "a" contra el "b" ?

gracias...
  #2 (permalink)  
Antiguo 29/01/2007, 16:13
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Comparar el contenido de 2 objetos

if(a.pro1.Equals(b.pro2))
{
has esto
}
else
{
has lo otro
}
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.

Última edición por erick_arcini; 29/01/2007 a las 16:16 Razón: me falto
  #3 (permalink)  
Antiguo 29/01/2007, 17:16
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Comparar el contenido de 2 objetos

Si esas variables hacen referencia a distintas instancias, me parece que no hay más alternativa que comparar sus propiedades.

Lo de erick sólo sirve para comparar referencias.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 29/01/2007, 17:24
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Comparar el contenido de 2 objetos

Cita:
Iniciado por xknown Ver Mensaje
...

Lo de erick sólo sirve para comparar referencias.

Saludos
pues es que no se entiende lo que quiere nolo:


en el post dice: "Comparar el contenido de 2 objetos"

eso lo entiendo como un

Código:
a.Equals(b)
y en su ejemplo lo coloca con una propiedad, entonces no se entiende lo que desea, yo, a, como lo puso en su codigo siento que es lo que desea, pero no formulo bien la pregunta, de todas formas espero que sus objetos esten referenciados sino, tremendo error
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 29/01/2007, 17:57
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Comparar el contenido de 2 objetos

Hice ese comentario por que en su ejemplo crea 2 instancias distintas para a y b, en todo caso él tiene la última palabra de qué es lo que en realidad quiere .

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #6 (permalink)  
Antiguo 29/01/2007, 18:03
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Comparar el contenido de 2 objetos

Cita:
Iniciado por xknown Ver Mensaje
Hice ese comentario por que en su ejemplo crea 2 instancias distintas para a y b, en todo caso él tiene la última palabra de qué es lo que en realidad quiere .

Saludos
las crea (a y b) pero a fin de cuentas las dos son una instancia de person, lo que captura es diferente propiedad, pero la decision la tiene el, asi que ni por que fastidiarnos, Saludos xknown
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #7 (permalink)  
Antiguo 30/01/2007, 07:59
 
Fecha de Ingreso: julio-2006
Mensajes: 98
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Comparar el contenido de 2 objetos

Gracias a los 2. Miren, yo no soy un expexto en el tema y por eso quizas no se entienda mi pregunta. Lo que quiero hacer es:

Teniendo 2 variables (objetos), que son cada una, una instancia de la misma clase, quisiera compararlos para ver si la informacion es la misma. Ejemplo

objeto A instancia de Persona
objeto B instancia de Persona

A.propiedad1 = "XXX"
B.propiedad1 = "ZZZ"
Estos objetos son distintos.

A.propiedad1 = "XXX"
B.propiedad1 = "XXX"
Estos objetos contienen la misma informacion. Son iguales.

Gracias...
  #8 (permalink)  
Antiguo 30/01/2007, 08:17
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Comparar el contenido de 2 objetos

No tomaste en cuenta los comentarios de arriba, si los objetos son creados por separado, entonces necesariamente tienes que comparar los atributos del objeto, tanto el operador = como el método Equals, por defecto sólo comparan referencias.
Código:
 
Person a = new Person();
Person b = new Person();

Console.WriteLine(a == b); // falso: a y b tienen referencias distintas
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 02/02/2007, 11:37
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Comparar el contenido de 2 objetos

Si se puede hacer, comparar 2 personas, sin importar cuantas propiedades tenga. Pero no es automatico, tienes que escribir codigo.

En la definicion de Persona, tienes que hacer que implemente la Interface IComparable. Esta interface te va a forzar a implementar la funcion CompareTo.

En la funcion CompareTo, vas a recibir un argumento de tipo objeto. Y en la implementación vas a tener que escribir que los atributos de tu ibjeto original se comparen con cada uno de los atributos del objeto argumento. Si todos los atributos son iguales, entonces regresas 0 para decir que si son iguales, en caso contario un numero diferente a 0, a mi me gusta -1.

Checa la siguiente página http://msdn2.microsoft.com/en-us/lib...omparable.aspx
y http://msdn2.microsoft.com/en-us/lib...compareto.aspx
Espero te ayude de algo.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #10 (permalink)  
Antiguo 13/02/2007, 01:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 12
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Comparar el contenido de 2 objetos

lo mas sencillo es usando

Cita:
Objeto.Equals ya mencionado anterior mente
saludos
  #11 (permalink)  
Antiguo 13/02/2007, 23:45
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Comparar el contenido de 2 objetos

Equals no sirve para este caso.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #12 (permalink)  
Antiguo 14/02/2007, 09:26
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Comparar el contenido de 2 objetos

Cita:
Iniciado por Alex Reyes Ver Mensaje
Equals no sirve para este caso.
claro que si, comprueba tu mismo creando una clase y, posteriormente declaralo en una app, escribe el nombre de tu objeto punto (.) y en la descripcion de menus se encuentran los eventos heredados.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #13 (permalink)  
Antiguo 14/02/2007, 11:05
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Re: Comparar el contenido de 2 objetos

Si, si tiene el Metodo Equals, pero solo regresa verdadero cuando se trata del mismo objeto. Si tienes P1 y P2, sin importar que los atributos contengan la misma información o no, Equals va a regresar falso. Solo si haces la asignacion P2 = P1 regresa verdadero, pero porque la referencia apunta al mismo lugar y entonces estas comparando el mismo objeto con 2 nombres diferentes.

En la pregunta original, se quiere comparar 2 objetos diferentes y Equals siempre va a regresar falso. Se tiene que usar la Interface IComparable como explique en un post anterior.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #14 (permalink)  
Antiguo 14/02/2007, 11:44
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Comparar el contenido de 2 objetos

el problema es que nolo quiere comparar propiedades del objeto y no el objeto en si contra otro (es lo que el pidio en el post anterior), y la verdad el chavo este ya ni siquiera esta interesado en este post.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #15 (permalink)  
Antiguo 15/11/2011, 12:46
 
Fecha de Ingreso: noviembre-2011
Ubicación: Veracuz, México
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Respuesta: Re: Comparar el contenido de 2 objetos

Cita:
Iniciado por erick_arcini Ver Mensaje
las crea (a y b) pero a fin de cuentas las dos son una instancia de person, lo que captura es diferente propiedad, pero la decision la tiene el, asi que ni por que fastidiarnos, Saludos xknown
Hola Erick!!

Disculpa la molestia,mi pregunta es si sabras algo a cerca de como comparar el contenido de 2 carpetas??
Tengo una tarea en visualbasic6, pero no tengo idea de como comparar ambos directorios.

y yo tengo el siguiente codigo


Dim objfso = CreateObject("scripting.Filesystemobject")
Dim archivo = objfso.getfolder("C:\ok")

Dim objfso1 = CreateObject("scripting.Filesystemobject")
Dim archivo1 = objfso.getfolder("C:\ok2")

f (archivo.Equals(archivo1)) Then

Shell("C:\Windows\system32\xcopy.exe "C:\ok" "C:\ok2 "/I /Y /Q /E /H")
Shell("net use I: /d")

Else

Shell("net use I: /d")

End If

El punto de todo esto es que si los directorios son iguales, no haga nada y si son distintos copie solo lo que falta, esto a fin de cuentas de que no reemplace ningun archivo.

Podrias orientarme por favor???
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:03.