Cita:
Iniciado por David 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 originalFor i = 0 To arrayempleados.Count - 1
' Código
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