¿Alguna diferencia en cómo usas Where en LINQ?

int[] integers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

Cual es la diferencia entre esto:

var odd = from i in integers
          where i % 2 == 1
          select i;

y esto :

var ODD = integers.Where(i => i % 2 == 1);

si no hay diferencia y solo las caras son diferentes, entonces, ¿por qué debería ser posible? Quiero decir, ¿cuál es la necesidad de tener dos formas de hacerlo?

preguntado el 01 de julio de 12 a las 12:07

No hay diferencia, solo apariencia. -

Acabo de notar el caso de los cambios ODD. ¡Que extraño! -

4 Respuestas

Nada: el primero es azúcar sintáctico para el segundo.

Uso lo que deja clara la intención. A veces la concisión está bien, a veces el flujo de los métodos fluidos y otras veces una consulta para expresar lo que estoy haciendo.

Respondido 01 Jul 12, 12:07

¡Sí, y prefiero el segundo por una milla! - Charleh

No hay diferencia, es solo una sintaxis diferente. Echa un vistazo a la documentos LINQ

Respondido 01 Jul 12, 12:07

La especificación del compilador requiere que las consultas LINQ se traduzcan en llamadas de métodos de extensión antes de compilarse.

Las consultas LINQ son generalmente más legibles que las llamadas al método de extensión. Eso es todo al respecto.

Respondido 01 Jul 12, 12:07

Yo diría lo contrario. Tener fluidez en SQL hace que aprender la sintaxis de comprensión de Linq sea un verdadero PITA, porque son similares pero también sustancialmente diferentes. A menos que esté haciendo uniones, prefiero con mucho los métodos de extensión. - donante

De hecho, está hablando de la diferencia entre la expresión de consulta y la cadena de métodos... No hay ninguna diferencia en cuanto al rendimiento.

Para obtener más información, consulte este post

contestado el 23 de mayo de 17 a las 12:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.