/// <summary> /// Hemos trabajado con una hashtable que acepta colisiones. Como visto en clase, /// la hashtable contiene un arreglo de listas enlazadas. Elementos que caen en el /// mismo indice son guardados en la misma lista enlazada. Asi que nuestro metodo /// de buscar en la hashtable devuelve una lista enlazada. Hemos decidido hacer nuestra /// hash table de esta manera para que se mas flixible, y que se el cliente el que /// decida que hacer con esa lista enlazada, si quiere mostrar todos los registros, /// o solo uno, el decide. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Buscar_Click(object sender, RoutedEventArgs e) { // validar datos try { // se consigue la clave, el numero de empleado int n = int.Parse(tB_B_ID.Text); CEmpleado em = hashTEmpleados.Get(n); /* si luego de recorrer la lisa, el objeto de CEmpleado aun * es null, entonces no existe empleado con el ID que se * especifico. */ if (em != null) { l_NombreEmpleado.Content = em.nombre + " " + em.apellido; } } catch (ArgumentException ex0) { l_NombreEmpleado.Content = "No hay resultado."; MessageBox.Show("No hay empleado con ese ID."); } catch (Exception ex1) { MessageBox.Show("Revisa los datos."); } }
private void btn_Ingresar_Click(object sender, RoutedEventArgs e) { // validar datos y crear CEmpleado if (string.IsNullOrEmpty(tB_Nombre.Text) || string.IsNullOrEmpty(tB_Apellido.Text)) { MessageBox.Show("Revisa los datos."); return; } try { int n = int.Parse(tB_ID.Text); CEmpleado em = new CEmpleado(tB_Nombre.Text, tB_Apellido.Text, n); hashTEmpleados.Add(n, em); MessageBox.Show("Se ingreso el empleado."); tB_Nombre.Text = string.Empty; tB_Apellido.Text = string.Empty; tB_ID.Text = string.Empty; } catch (ArgumentException ex0) { MessageBox.Show("Ya existe un empleado con esa clave!"); } catch { MessageBox.Show("Revisa los datos."); } }