Entrevista Sênior Perguntas sobre LINQ [fechado]


16

Estou preparando uma seção LINQ nas perguntas da entrevista para programadores seniores. Quais são as perguntas mais interessantes do LINQ a serem incluídas? E porque?

Respostas:


28

Algumas das coisas que você pode perguntar seriam.

  • Por que a varpalavra-chave é usada e quando é a única maneira de obter o resultado da consulta?
  • O que é execução adiada?
  • Explique a sintaxe da Expressão de consulta, Sintaxe fluente, Consultas mistas.
  • O que são consultas interpretadas?
  • Uso de IQueryablee IEnumerableinterfaces.
  • Uso de let e intopalavra - chave, e como eles ajudam a fazer consultas progressivas, mas ainda mantêm a execução adiada
  • O que são árvores de expressão?


Atualizar:

Para obter respostas detalhadas, consulte este bom post de Oleksii


8
Ótimas perguntas. Eu posso ficar tentado a dar exemplos de código e dizer "o que isso faz?" como não estou totalmente convencido de que você precisa saber qual é o termo sintaxe fluente a usar e entender.

hmmm, e se eles pesquisarem no Google esses tópicos antes e o memorizarem, como essa abordagem diz que eles podem realmente executar qualquer LINQ do mundo real?
quer

então, como o BTyler disse acima ... você pode complementar as perguntas acima com exemplos de código.
precisa saber é o seguinte

1
Esse cara blog sobre as soluções para todas estas perguntas: blog4work.com/?tag=/LINQ
Nick Larsen

Só vi o post, bom trabalho :)
Shekhar_Pro

13

Peça a eles que dêem exemplos de momentos em que tenderiam a não usar o LINQ e por quê, mesmo que isso fosse possível (e o ReSharper o sugere com entusiasmo).


6

Você pode começar perguntando quais recursos de idioma introduzidos no C # 3 são necessários para dar suporte ao LINQ. O candidato entende como recursos como a palavra-chave var, bem como tipos anônimos, expressões lambda e métodos de extensão foram necessários para ativar o LINQ?


Para minha própria curiosidade, por que os tipos anônimos são necessários? Eles podem ser usados ​​para selecionar resultados como uma conveniência, mas você também pode definir suas próprias classes com propriedades nomeadas, não é?
Rup

@Rup | É apenas uma questão de conveniência e um açúcar sintático. É claro que você pode criar classes bem definidas (de qualquer forma, o compilador faz isso por você nos bastidores). mas, ao usar consultas LINQ, você precisa instantaneamente de um tipo para conter os resultados ... agora isso não parece produtivo para continuar criando classes para cada tipo e isso pode levar a mais código e difícil de manter se o conjunto de resultados mudar posteriormente.
precisa saber é o seguinte

Isso não está correto. Tipos anônimos são necessários para projeções de linq para sql, por exemplo, para selecionar apenas determinadas colunas de uma tabela / entidade.
perfil completo de joniba

6

Que tal algumas perguntas sobre codificação, como:

  • Forneça um código não-LINQ que seria melhor feito no LINQ e peça que eles o traduzam.
  • Dê a eles um pouco de LINQ e faça com que eles se desenrolem e reescrevam em C # simples (melhor ainda, encontre um exemplo em que a versão não-LINQ seja melhor ou mais fácil de entender)
  • Peça que eles resolvam algum problema e mostre com / sem LINQ e peça que expliquem o que é melhor e por quê.

As perguntas do livro de texto são boas (por exemplo, por que usar var), mas para realmente descobrir se elas entendem, basta fazê-las escrever código.


4

Se você estiver procurando por uma pergunta para a qual obtenha respostas "interessantes", poderá perguntar-lhes por que eles acham que a maioria dos exemplos de linq atribui usando a palavra-chave "var" no LHS ... não há resposta certa e você provavelmente entenda o tipo de pessoa que é e o que diz.


3

Pergunte a eles sobre árvores de expressão. Como o linq se transforma em sql no servidor de banco de dados, a diferença entre os métodos de extensão linq e as consultas linq

Depende do que você está tentando tirar deles.


1
  • Quais são as situações em que você usaria o First e quando usar FirstOrDefault?

  • que problema o LINQ resolve?

  • o que acontece quando você quebra a consulta no .ToList?


permite execução adiada.
linquize

reduzir a chance de usar para / foreach loop para melhorar a legibilidade
linquize

0

Peça a eles para criar um pequeno mecanismo de regras, usando as regras Func [] {}. Cada regra deve ser verdadeira, o array substituindo as instruções case ou if.

Eu comecei no linq e lambdas, mas acho que esse é um bom teste de resolução de problemas e alfabetização em linq.

Além das sugestões mais qualificadas aqui.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.