Preguntas de la Entrevista Senior LINQ [cerrado]

16

Estoy preparando una sección de LINQ en preguntas de entrevista para programadores senior. ¿Cuáles son las preguntas más interesantes en LINQ para incluir? ¿Y por qué?

mBotros
fuente

Respuestas:

28

Algunas de las cosas que puede preguntar serían.

  • ¿Por qué varse usa la palabra clave y cuándo es la única forma de obtener el resultado de la consulta?
  • ¿Qué es la ejecución diferida?
  • Explicar la sintaxis de expresión de consulta, sintaxis fluida, consultas mixtas.
  • ¿Qué son las consultas interpretadas?
  • Uso de IQueryablee IEnumerableinterfaces.
  • Uso de let y intopalabras clave, y cómo ayudan a hacer consultas progresivas pero aún mantienen la ejecución diferida
  • ¿Qué son los árboles de expresión?


Actualizar:

Para obtener respuestas detalladas, vea esta bonita publicación de Oleksii

Shekhar_Pro
fuente
8
Grandes preguntas Podría sentir la tentación de dar ejemplos de código y decir "¿qué hace esto?" ya que no estoy totalmente convencido de que necesites saber cuál es el término Sintaxis fluida para usarlo y entenderlo.
hmmm, y si Google esos temas de antemano y lo memorizan, ¿cómo este enfoque te dice que realmente pueden hacer cualquier LINQ del mundo real?
Darknight
entonces, como BTyler dijo anteriormente ... puede complementar las preguntas anteriores con ejemplos de código.
Shekhar_Pro
1
Este tipo escribió en un blog sobre las soluciones a todas estas preguntas: blog4work.com/?tag=/LINQ
Nick Larsen
Acabo de ver la publicación, buen trabajo :)
Shekhar_Pro
13

Pídales que den ejemplos de momentos en que tenderían a no usar LINQ y por qué, a pesar de que sería posible (y ReSharper lo sugiere con entusiasmo).

David Neale
fuente
6

Podría comenzar, pero preguntando qué características del lenguaje que se introdujeron en C # 3 son necesarias para admitir LINQ. ¿El candidato comprende cómo se necesitaban características como la palabra clave var, así como los tipos anónimos, las expresiones lambda y los métodos de extensión para habilitar LINQ?

Steve
fuente
Para mi propia curiosidad, ¿por qué son necesarios los tipos anónimos? Se pueden usar para obtener resultados selectos como una conveniencia, pero igualmente podría definir sus propias clases con propiedades con nombre, ¿no?
Rup
@Rup | Es solo una cuestión de conveniencia y un azúcar sintáctico ... por supuesto, puede crear clases bien definidas (de todos modos, el compilador lo hace detrás de la escena). pero mientras usa las consultas LINQ, necesita instantáneamente un tipo para contener los resultados ... ahora esto no parece productivo para seguir creando clases para cada tipo y esto puede conducir a más código y difícil de mantener si el conjunto de resultados cambia más adelante.
Shekhar_Pro
Eso no es correcto Se requieren tipos anónimos para las proyecciones de linq a SQL, por ejemplo, para seleccionar solo ciertas columnas de una tabla / entidad.
joniba
6

¿Qué tal algunas preguntas de codificación, como:

  • Proporcione entonces un código que no sea LINQ que se haría mejor en LINQ y haga que lo traduzcan.
  • Déles algo de LINQ y haga que se desenreden y reescriban en C # simple (mejor aún, encuentre un ejemplo en el que la versión que no sea LINQ sea mejor o más fácil de entender)
  • Pídales que resuelvan algún problema y muestren con / sin LINQ y pídales que expliquen cuál es mejor y por qué.

Las preguntas de los libros de texto están bien (p. Ej., Por qué usarlas var), pero para saber realmente si entienden solo pídales que escriban código.

Steve
fuente
4

Si está buscando una pregunta para la que obtenga respuestas "interesantes", puede preguntarles por qué creen que la mayoría de los ejemplos de linq se asignan usando la palabra clave "var" en el LHS ... no hay una respuesta correcta y probablemente podría Comprenda algo del tipo de persona que es a partir de lo que dice.

Mikey Hogarth
fuente
3

Pregúnteles sobre los árboles de expresión. Cómo se transforma linq en sql en el servidor de bases de datos, la diferencia entre los métodos de extensión de linq y las consultas de linq

Depende de lo que intentes sacar de ellos.


fuente
1
  • ¿En qué situaciones usaría First y cuándo usar FirstOrDefault?

  • ¿Qué problema resuelve LINQ?

  • ¿Qué sucede cuando envuelve la consulta en .ToList?

Tangurena
fuente
Permite la ejecución diferida.
linquize
reduzca la posibilidad de usar el bucle for / foreach para mejorar la legibilidad
linquize el
0

Pídales que creen un pequeño motor de reglas, utilizando las reglas Func [] {}. Cada regla tiene que ser verdadera, la matriz reemplaza el caso o las declaraciones if.

Acabo de comenzar con linq y lambdas, pero creo que esta es una buena prueba de resolución de problemas y alfabetización de linq.

Además de las sugerencias más calificadas aquí.

Ricardo
fuente