Ayuda con comparador doble-condicion

24/05/2008 - 00:50 por Michelle | Informe spam
Tengo que hacer una funcion delegada para un comparador de un arreglo
(array.sort).

La idea del comparador es:
que los objetos de la clase tipo claseB queden primero y luego dentro de los
claseB quede primero uno que se llama "XI". O sea son dos condiciones.

if (x.issubclassof(claseB) && y.issubclassof(claseB)) return -1;
else
if (x.name="XI") then...

no encuentro como armar la comparacion.

alguna ayuda?

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
24/05/2008 - 10:37 | Informe spam
"Michelle" wrote in message
news:OBGA%
Tengo que hacer una funcion delegada para un comparador de un arreglo
(array.sort).

La idea del comparador es:
que los objetos de la clase tipo claseB queden primero y luego dentro de
los claseB quede primero uno que se llama "XI". O sea son dos
condiciones.

if (x.issubclassof(claseB) && y.issubclassof(claseB)) return -1;
else
if (x.name="XI") then...

no encuentro como armar la comparacion.

alguna ayuda?



Pues, por ejemplo, asi:

public class Comparador:IComparer
{
public int Compare (object x, object y)
{
if (x is claseB && !(y is claseB)) return 1;
if (y is claseB && !(x is claseB)) return -1;
if (x is claseB && y is claseB)
{
claseB xb = (claseB) x;
claseB yb = (claseB) y;
if (xb.name="XI" && yb.name!="XI") return 1;
if (xb.name!="XI" && yb.name=="XI") return -1;
}
return 0;
}
}

Array.Sort(miArray, new Comaprador());
Respuesta Responder a este mensaje
#2 Michelle
24/05/2008 - 13:24 | Informe spam
Muchas gracias, Alberto.

"Alberto Poblacion"
escribió en el mensaje news:%
"Michelle" wrote in message
news:OBGA%
Tengo que hacer una funcion delegada para un comparador de un arreglo
(array.sort).

La idea del comparador es:
que los objetos de la clase tipo claseB queden primero y luego dentro de
los claseB quede primero uno que se llama "XI". O sea son dos
condiciones.

if (x.issubclassof(claseB) && y.issubclassof(claseB)) return -1;
else
if (x.name="XI") then...

no encuentro como armar la comparacion.

alguna ayuda?



Pues, por ejemplo, asi:

public class Comparador:IComparer
{
public int Compare (object x, object y)
{
if (x is claseB && !(y is claseB)) return 1;
if (y is claseB && !(x is claseB)) return -1;
if (x is claseB && y is claseB)
{
claseB xb = (claseB) x;
claseB yb = (claseB) y;
if (xb.name="XI" && yb.name!="XI") return 1;
if (xb.name!="XI" && yb.name=="XI") return -1;
}
return 0;
}
}

Array.Sort(miArray, new Comaprador());

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida