Intervista senior Domande LINQ [chiuso]


16

Sto preparando una sezione LINQ in domande di intervista per programmatori senior. Quali sono le domande più interessanti in LINQ da includere? E perché?

Risposte:


28

Alcune delle cose che puoi chiedere sarebbero come.

  • Perché varviene utilizzata la parola chiave e quando è l'unico modo per ottenere il risultato della query?
  • Che cos'è l'esecuzione differita?
  • Spiegare la sintassi delle espressioni di query, la sintassi fluida, le query miste.
  • Cosa sono le query interpretate?
  • Uso IQueryablee IEnumerableinterfacce.
  • Uso di let e intoparola chiave e come aiutano a fare query progressive ma mantengono comunque l'esecuzione differita
  • Cosa sono gli alberi delle espressioni?


Aggiornare:

Per risposte dettagliate vedi questo bel post di Oleksii


8
Grandi domande. Potrei essere tentato di fornire esempi di codice e dire "che cosa fa questo?" poiché non sono del tutto convinto che sia necessario conoscere e comprendere il termine Sintassi fluente.

hmmm, e se Google tratta questi argomenti in anticipo e li memorizza, in che modo questo approccio ti dice che possono effettivamente fare qualsiasi LINQ nel mondo reale?
Darknight,

poi come ha detto BTyler sopra ... puoi integrare le domande precedenti con esempi di codice.
Shekhar_Pro

1
Questo ragazzo ha scritto sul blog le soluzioni a tutte queste domande: blog4work.com/?tag=/LINQ
Nick Larsen,

Ho appena visto il post, bel lavoro :)
Shekhar_Pro

13

Chiedi loro di fornire esempi di momenti in cui tendono a non usare LINQ e perché, anche se sarebbe possibile (e ReSharper lo suggerisce con entusiasmo).


6

Potresti iniziare ma chiedendo quali funzionalità linguistiche sono state introdotte in C # 3 per supportare LINQ. Il candidato comprende in che modo sono necessarie funzionalità come la parola chiave var, nonché tipi anonimi, espressioni lambda e metodi di estensione per abilitare LINQ?


Per mia curiosità, perché sono necessari tipi anonimi? Possono essere usati per selezionare i risultati per comodità, ma potresti definire ugualmente bene le tue classi con proprietà denominate, vero?
Rup,

@Rup | È solo una questione di convenienza e uno zucchero sintattico ... puoi ovviamente creare classi ben definite (comunque il compilatore lo fa per te dietro le quinte). ma mentre usi le query LINQ hai immediatamente bisogno di un tipo per contenere i risultati ... ora questo non sembra produttivo per continuare a creare classi per ogni tipo e questo potrebbe portare a più codice e difficile da mantenere se il set di risultati cambia in seguito.
Shekhar_Pro

Non è corretto I tipi anonimi sono richiesti per le proiezioni da linq a SQL, ad esempio per selezionare solo determinate colonne da una tabella / entità.
Joniba,

6

Che ne dici di alcune domande sulla codifica, come:

  • Dare quindi un codice non LINQ che sarebbe meglio fare in LINQ e convincerlo a tradurlo.
  • Dai loro un po 'di LINQ e fagli svelare e riscrivere in semplice C # (meglio ancora, trova un esempio in cui la versione non LINQ è migliore o più facilmente comprensibile)
  • Chiedi loro di risolvere alcuni problemi e mostrare con / senza LINQ e far loro spiegare quale è meglio e perché.

Le domande sui libri di testo vanno bene (ad es. Perché utilizzarle var), ma per scoprire davvero se comprendono basta farle scrivere il codice.


4

Se stai cercando una domanda a cui otterrai risposte "interessanti", potresti chiedere loro perché pensano che la maggior parte degli esempi di linq assegnino usando la parola chiave "var" su LHS ... non c'è una risposta giusta e probabilmente potresti ottenere una certa comprensione del tipo di persona che provengono da ciò che dicono.


3

Chiedi loro degli alberi delle espressioni. In che modo linq si trasforma in sql sul server di database la differenza tra i metodi di estensione linq e le query di linq

Dipende da cosa stai cercando di uscirne.


1
  • quali sono le situazioni in cui useresti First e quando usare FirstOrDefault?

  • quale problema risolve LINQ?

  • cosa succede quando si avvolge la query in .ToList?


consente l'esecuzione differita.
Linquize,

ridurre la possibilità di utilizzare il ciclo for / foreach per migliorare la leggibilità
linquize,

0

Chiedi loro di costruire un piccolo motore di regole, usando le regole Func [] {}. Ogni regola deve essere vera, l'array sostituisce case o if.

Ho appena iniziato su Linq e Lambdas, ma immagino che questo sia un bel test di problem solving e alfabetizzazione Linq.

Oltre ai suggerimenti più qualificati qui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.