Sto preparando una sezione LINQ nelle domande dell'intervista per i programmatori esperti. Quali sono le domande più interessanti in LINQ da includere? E perché?
Alcune delle cose che potresti chiedere sarebbero.
var
e quando è l'unico modo per ottenere il risultato della query? IQueryable
e IEnumerable
interfacce. let
e into
, e del modo in cui aiutano a creare query progressive ma mantengono l'esecuzione rinviata Aggiornamento:
Chiedi loro di fornire esempi di volte in cui tendono a non usare LINQ e perché, anche se sarebbe possibile (e ReSharper lo suggerisce eccitato).
Potresti iniziare ma chiedi quali funzionalità linguistiche introdotte in C # 3 sono necessarie per supportare LINQ. Il candidato comprende come sono state necessarie funzionalità come la parola chiave var, i tipi anonimi, le espressioni lambda e i metodi di estensione per abilitare LINQ?
Che ne dici di alcune domande di codifica, come:
Le domande del libro di testo vanno bene (ad es. perché usi var
), ma per scoprire veramente se capiscono basta farle scrivere codice.
Se stai cercando una domanda alla quale otterrai risposte "interessanti", potresti chiedere loro perché pensano che la maggior parte degli esempi di linq assegni usando la parola chiave "var" sull'LHS ... non c'è una risposta giusta e probabilmente potresti capire il tipo di persona che sono da quello che dicono.
Chiedi loro degli alberi espressione. Come linq si trasforma in sql sul server del database la differenza tra i metodi di estensione di linq e la query di linq
Dipende da cosa stai cercando di uscirne.
quali sono le situazioni in cui dovresti utilizzare First e quando utilizzare FirstOrDefault?
quale problema risolve LINQ?
cosa succede quando avvolgi la query in .ToList?
Chiedi loro di creare un piccolo motore di regole, utilizzando le regole di Func [] {}. Ogni regola deve essere vera, la matrice che sostituisce il caso o se le istruzioni.
Ho appena iniziato su linq e lambdas ma ritengo che questo sia un buon test per la risoluzione dei problemi e l'alfabetizzazione di linq.
Oltre ai suggerimenti più qualificati qui.