none
Como puedo comparar valores RRS feed

  • Pregunta

  • Hola, soy un poco nueva n MVC y c#, necesito comparar los valores que me arroja una consulta.

    Me imagino que deba hacer un for dentro de un for para ir comparando resultados o tal vez haya una manera más eficiente de hacerlo.

    Mi problema principal es que cuando reaalizo el for, no puedo acceder, o no se como acceder, al valor que necesito comparar de la consulta. Qué puedo estar haciendo mal, les dejo mi metodo del Controlador:

     var query_y_axis = db.registro.Select(o => new { o.value, o.date});   

    var minutes = 0;             

    for(var i = 0; i < query_y_axis.LongCount()-1; i++)  {

      minutes = query_y_axis. AQUI ES DONDE NO OBTENGO EL DATE, a lo mejor estpy haciendo algo mal. 

    }


    Necesito comparar por minutos para quedarme solamnete con la fecha y los valores de esa fecha de un minuto a otro y no más allá

    Gracias por todo.

    jueves, 15 de marzo de 2018 13:37

Todas las respuestas

  • hola

    porque usas un for en lugar de un foreach

    foreach(var item in query_y_axis){

      var date = item.date;

    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 15 de marzo de 2018 14:04
  • es que como plantee anteriormente, no se hacerlo de otra forma, no se como con el for each comparar valores de la misma consulta, por ejemplo, si obtengo una lista

    2018-02-13 10:04:01, 2018-02-13 10:04:02, 2018-02-13 10:04:50, 2018-02-13 10:04:59, 2018-02-13 10:05:06, 2018-02-13 10:05:17, 2018-02-13 10:05:23

    de esta lista iría comparando el primero con los demás y me quedaria posteriormente otra lista con los primeros 4 valores que son los que tienen el mismo minuto que la fecha inicial (2018-02-13 10:04:01, 2018-02-13 10:04:02, 2018-02-13 10:04:50, 2018-02-13 10:04:59)

    jueves, 15 de marzo de 2018 14:26
  • >>no se hacerlo de otra forma

    pero no te interesa aprender?

    >>de esta lista iría comparando el primero con los demás y me quedaria posteriormente otra lista con los primeros 4 valores que son los que tienen el mismo minuto

    podrias hacer dos foreach o quizas un foreach y linq

    ademas solo tomas el primero, en ese caso seria solo un unico foreach

    var query_y_axis = db.registro.Select(o => new class1() { o.value, o.date});  

    var fechainicio = query_y_axis[0].date;

    List<class1> list = new List<class1>()

    foreach(var item in query_y_axis){

      if(fechainicio.Minute == item.Minute){

    list.Add(item);

    }

    }

    lo que si aconsejo es que defiens una clase para el Select() de linq porquesino no podrias assignar los item en la lista

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 15 de marzo de 2018 14:59
  • >>no se hacerlo de otra forma

    pero no te interesa aprender?

    Claro que me interesa aprender, pero es que soy nueva con el c# y el linq, entonces no se cual es la mejor manera.

    con respecto a la consulta ¿Que sería class1?, en la parte de la creación de la lista

    List<DateTime> lista = new List<DateTime>();

    puse datetime y no me dio ningun error, pero en la consulta si, entonces no se que sería lo que iría aqui.

    Gracias.


    • Editado mbmtnez jueves, 15 de marzo de 2018 19:29
    jueves, 15 de marzo de 2018 19:28