ordenar array bidimensional

16/11/2005 - 17:18 por p. urrukieza | Informe spam
tengo un array de dos dimensiones y, puesto que no encuentro la manera
de ordenarlo por una de sus columnas, ya que .Sort sólo es para
arrays unidimensionales ¿ podría volcar los datos en otro objeto que
sí tenga una propiedad que ordena automáticamente con una sola sentencia ?

¿ qué objeto sería ese ? ¿ dataview o algo similar ?

en último caso puedo hacer mi propia función de ordenación, pero es
lo que quería evitar.

gracias.

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
16/11/2005 - 18:21 | Informe spam
"p. urrukieza" escribió en el mensaje
news:
tengo un array de dos dimensiones y, puesto que no encuentro la manera
de ordenarlo por una de sus columnas, ya que .Sort sólo es para
arrays unidimensionales ¿ podría volcar los datos en otro objeto que
sí tenga una propiedad que ordena automáticamente con una sola sentencia ?

¿ qué objeto sería ese ? ¿ dataview o algo similar ?

en último caso puedo hacer mi propia función de ordenación, pero es
lo que quería evitar.



Hola.

Si tienes un array bidimensional donde los elementos de las dos dimensiones
estan vinculados, probablemente puedas replantearlo como un array
unidimensional de una estructura que agrupe cada pareja.

Luego haces que esa estructura implemente IComparable, y ordenas tu array
unidimensional.

Salud!
Respuesta Responder a este mensaje
#2 p. urrukieza
18/11/2005 - 11:50 | Informe spam
gracias por la sugerencia. tomo nota, aunque no sé si me vale,
porque una de las columnas es un string de formato de fecha
y hé de ordenar por esa columna en formato date.

gracias, de todos modos.




Hola.

Si tienes un array bidimensional donde los elementos de las dos


dimensiones
estan vinculados, probablemente puedas replantearlo como un array
unidimensional de una estructura que agrupe cada pareja.

Luego haces que esa estructura implemente IComparable, y ordenas tu array
unidimensional.

Salud!


Respuesta Responder a este mensaje
#3 p. urrukieza
19/11/2005 - 14:32 | Informe spam
bueno, vengo de otro lenguaje y aún no me he familiarizado por completo
con el modo de operar con objetos ni las capacidades que tienen.
o sea, soy un poco "antigualla", supongo.

tomo nota de tus consejos y voy a estudiar ese código.
muchísimas gracias por tu tiempo y por compartir tus conocimientos.
:-)
mil gracias.
saludos.


Hola, Urrukieza:

No hay pero que valga :-)

Te anexo un archivo para un programita de consola que llena un arreglo con
los nombres y fecha de nacimiento de cinco personas, en orden alfabetico,


lo
muestra, lo ordena mediante una llamada a Sort y los muestra nuevamente.

Los datos estan definidos de acuerdo con una estructura a la que llame
Persona, que contiene un Nombre, una Fecha de nacimiento almacenada como


un
string e implementa la interfaz IComparable, por lo que tambien implementa
la funcion CompareTo.

Claro que puedes escribir tu propia funcion de ordenamiento, pero sería


una
lastima que desaprovecharas las capacidades del lenguaje por aferrarte a


esa
antiquísima practica de representar las estructuras como variables
independientes que luego tienes que mantener vinculadas a fuerza de


codigo.
Es demasiado lo que te pierdes.

Incluso si la asociacion fuese "temporal", lo mas inteligente es crear un
tipo (estructura o clase) para establecer esa asociacion y usarlo donde y
como lo necesites.

El principio es el mismo siempre: si dos valores deben "moverse juntos"
entonces son dos partes de lo mismo. SIEMPRE es mejor negocio definir esa
"CLASE de cosa" de la que son partes, y operar sobre ella.

Salud!



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