none
Comparar elementos en una lista #c RRS feed

  • Pregunta

  • Hola tengo que hacer un programa que compare elementos de una lista y mi lista tiene mese osea que mi lista esta estructurada asi ua clase Datos que tiene nombre,apellido,mes y desedo comparar el mes ya q en la lista esta dada por      [Enero,Enero,Enero,Febrero,Febrero,Marzo,Abril,Abril] y asi sucesivamente no importa mucho los nombre y apellido solo el mes y lo estaba haciendo asi :

    String mesDiferente = 0;

    for(int i = 0  ; i < listaDatos.Count ; i++){

    if(listaDatos[i+1] != null){

    if( listaDatos[i].getMes() == listaDatos[i+1].getMes()   ){

    mesDiferentes ++;

    }

    }

    }

    Excepción no controlada del tipo 'System.ArgumentOutOfRangeException' en mscorlib.dll

    Información adicional: El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.

    les agradeceria su ayuda saludos 


    martes, 8 de abril de 2014 0:11

Respuestas

  • El problema está en la siguiente linea:

    if(listaDatos[i+1] != null)

    Cuando el bucle llega al último elemento y le sumas 1 se sale del intervalo y te salta la excepcción.

    Puedes controlar que cuando llegue al último elemento no haga la comparación de la siguiente manera:

    if(i < (listaDatos.Count - 1) && listaDatos[i+1] != null)

    Saludos.


    Víctor del Valle - http://www.vrdelvalle.net

    • Marcado como respuesta Beikk099 martes, 8 de abril de 2014 18:40
    martes, 8 de abril de 2014 7:39

Todas las respuestas

  • El problema está en la siguiente linea:

    if(listaDatos[i+1] != null)

    Cuando el bucle llega al último elemento y le sumas 1 se sale del intervalo y te salta la excepcción.

    Puedes controlar que cuando llegue al último elemento no haga la comparación de la siguiente manera:

    if(i < (listaDatos.Count - 1) && listaDatos[i+1] != null)

    Saludos.


    Víctor del Valle - http://www.vrdelvalle.net

    • Marcado como respuesta Beikk099 martes, 8 de abril de 2014 18:40
    martes, 8 de abril de 2014 7:39
  • Gracias Victor ese era el error :D
    martes, 8 de abril de 2014 18:42
  • disculpa pero cuando hago la comparacion ya q no compara el ultimo de la lista pero yo cuando guardo los datos de los meses si hay un mes diferente en la ultima posision no lo coje osea si en la lista hay enero,febreo,marzo el marzo no lo coje como seria alli saludos


    Bakke

    sábado, 12 de abril de 2014 15:24