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

reordenar array bidimencional c#

Estas en el tema de reordenar array bidimencional c# en el foro de .NET en Foros del Web. buenas noches compañeros... mi conulta es la siguiente... estoy en un proyecto mi primer obligatorio en la carrera. en consola. c# . tengo una matriz ...
  #1 (permalink)  
Antiguo 09/07/2011, 15:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
reordenar array bidimencional c#

buenas noches compañeros... mi conulta es la siguiente... estoy en un proyecto mi primer obligatorio en la carrera. en consola. c# . tengo una matriz bodimencional en la que guardo cedula y nombre del cliente. de esta forma

static public void ingreso_clientes()
{
Console.Clear();
string opcion = "";

string cedula = "0";
datos();

if (error_cedula_digitos_ic == true)
{
Console.WriteLine("la cedula intruducida no es valida. formato aceptado (12345678) sin puntos ni guiones");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
error_cedula_digitos_ic = false;
}
if (error_cedula_existe_ic == true)
{
Console.WriteLine("la cedula introducida ya existe en nustros datos");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
error_cedula_existe_ic = false;
opciones_clientes();
}

for (int x = ide1; x < cant_clientes; )
{
for (int i = 0; i < 2; i++)
{
if (i == 0)
{
Console.Write("ingrese cedula :");
cedula = Console.ReadLine();

if (cedula.Length == 8)
{
for (int j = 0; j < cant_clientes; j++)
{
for (int h = 0; h < 2; h++)
{
if (cedula == clientes[h,j])
{
error_cedula_existe_ic = true;
ingreso_clientes();
}

}
}
clientes[i, x] = cedula;
ide1++;

}
else
{
error_cedula_digitos_ic = true;
ingreso_clientes();

}
}
else
{
Console.Clear();
Console.Write("ingrese nombre :");
clientes[i, x] = Console.ReadLine();
}
}

mensaje_cabezera();
Console.WriteLine("Cliente registrado");
mensaje_pie();

Console.WriteLine("");
Console.WriteLine("1) agregar otro cliente");
Console.WriteLine("2) regresar atras");
opcion = Console.ReadLine();

if (opcion == "2")
{
opciones_clientes();
}
else if (opcion == "1")
{
ingreso_clientes();
}
else
{
mensaje_cabezera();

Console.WriteLine("");
Console.WriteLine(" --- La opcion introducida no es valida, intentelo nuevamente ---");
Console.WriteLine("");
mensaje_pie();
opciones_clientes();
}
}
}



y tengo otro metodo donde elimino un cliente segun su cedula asi

static public void baja_cliente()
{
datos();
string opcion = "0";
bool se_borro = false;

Console.Write("ingrese cedula :");
opcion = Console.ReadLine();

for (int x = 0; x < cant_clientes; x++)
{
for (int i = 0; i < 2; i++)
{
if (opcion == clientes[i,x])
{

se_borro = true;

clientes[i, x] = null;
i++;
clientes[i, x] = null;

mensaje_cabezera();
Console.WriteLine(" ");
Console.WriteLine("Cliente cedula : " + opcion + " fue borrado");
mensaje_pie();
}
}
}



if (se_borro == false)
{
mensaje_cabezera();
Console.WriteLine("");
Console.WriteLine("Cliente cedula : " + opcion + " no existe");
mensaje_pie();
}
opciones_clientes();

}



si la cedula existe se elimina y se elimina el nombre del cliente con un null.. mi consulta es.. como reordeno la matriz para cuando me tire el listado de clientes no me quede un espacio en blanco en la lista.. donde estaban esos clientes qe fueron ordenados???? se entiende la pregunta???

si elimino un cliente a la hora de mostrarme los clientes me muestra asi


cedula nombre
6232323 jose
54651 pepe

1212 martin



me deja ese espacio donde estaba el cliente que fue borrado porque ese campo ahora es null.. lo que quiero es reordenar la matriz para que queden todos los campos consecutivos a la hora de eliminar uno de ellos..

gracias espero me puedan ayudar es lo unico que me falta para la entrega q si bien no lo piden. me parece que es algo de prolijidad verdad...
  #2 (permalink)  
Antiguo 10/07/2011, 19:28
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 12 años, 10 meses
Puntos: 33
Respuesta: reordenar array bidimencional c#

checalos
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/6961386f-d4b5-473c-9865-1ea093ccc281
tambien puedes usar arraylist e implementar un icomparer, checalos en msdn

Etiquetas: Ninguno
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 00:29.