Usuario
Como puedo comparar valores

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.
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 -
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)
-
>>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 -
>>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