Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/06/2010, 10:43
buckcherry
 
Fecha de Ingreso: diciembre-2008
Mensajes: 13
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ayuda con búsquedas en Arraylist - Visual Basic 2005

Cita:
Iniciado por David Ver Mensaje
Traslado el tema a una sección donde encaja mejor.

Así sin revisar detenidamente. El bucle debería terminar en Count - 1:
Código vb.net:
Ver original
  1. For i = 0 To arrayempleados.Count - 1
  2.     ' Código
  3. Next i
Asumiendo que soy un principiante, basandome en lo que creo saber...
Count no cuenta a partir de 0, sino de 1...

Si en el array hay dos valores, count da como resultado 2
Si recorro el array con Count - 1 no me encuentra el valor que está en la última posición.

...pero me has ayudado mucho , porque me he dado cuenta que cuando el array está vacío Count da como resultado 0

Por lo que, ahora si:

Private Function buscarempleado(ByRef arrayempleados As ArrayList) As Integer
Dim cache As String 'Creamos una variable tipo String para guardar el nombre a buscar
Dim i As Integer 'Creamos una variable contador

cache = InputBox("Escriba el nombre del empleado que desea buscar", "Búsqueda") 'Pedimos el nombre a buscar, y lo guardamos en memoria.
If arrayempleados.Count() <> 0 Then 'Si el arraylist no está vacío
For i = 0 To arrayempleados.Count 'Recorremos el array
If arrayempleados(i).nombre = cache Then 'Si hay una coincidencia
Return i 'Devolvemos donde está ubicada
Else
MessageBox.Show("Empleado no encontrado.", "No encontrado") 'Si no lo encontramos...
Return -1 'devolvemos un -1
End If
Next
Else 'Si el arraylist está vacío
Return -1 'Devolvemos -1
MessageBox.Show("Empleado no encontrado.", "No encontrado") '...y sacamos mensaje por pantalla.
End If
End Function

Esto ya funciona.
Gracias de nuevo a todos, y en particular a David