Przygotowuję sekcję LINQ w pytaniach do wywiadu dla starszych programistów. Jakie są najciekawsze pytania w LINQ? I dlaczego?
16
Niektóre z rzeczy, o które możesz zapytać, byłyby.
var
słowo kluczowe jest używane i kiedy jest to jedyny sposób na uzyskanie wyniku zapytania?IQueryable
i IEnumerable
interfejsy.let
i into
słowo kluczowe oraz sposób, w jaki pomagają w tworzeniu zapytań progresywnych, ale nadal zachowują odroczoną realizacjęAby uzyskać szczegółowe odpowiedzi, zobacz ten miły post autorstwa Oleksii
Poproś, aby podać przykłady czasach kiedy mają tendencję do nie używać LINQ i dlaczego, chociaż byłoby to możliwe (i ReSharper podnieceniu Sugeruje).
źródło
Możesz zacząć od pytania, jakie funkcje językowe wprowadzone w C # 3 są potrzebne do obsługi LINQ. Czy kandydat rozumie, w jaki sposób funkcje takie jak słowo kluczowe var, anonimowe typy, wyrażenia lambda i metody rozszerzenia były potrzebne do włączenia LINQ?
źródło
Co powiesz na niektóre pytania kodujące, takie jak:
Pytania z podręczników są w porządku (np. Po co korzystać
var
), ale aby naprawdę dowiedzieć się, czy rozumieją, po prostu poproś ich o napisanie kodu.źródło
Jeśli szukasz pytania, na które uzyskasz „interesujące” odpowiedzi, możesz zapytać, dlaczego według nich większość przykładów linq przypisuje za pomocą słowa kluczowego „var” na LHS ... nie ma właściwej odpowiedzi i prawdopodobnie możesz uzyskać wiedzę na temat rodzaju osoby, z której pochodzą.
źródło
Zapytaj ich o drzewa ekspresji. Jak linq przekształca się w sql na serwerze bazy danych, różnica między metodami rozszerzenia linq a zapytaniami linq
Zależy, co próbujesz z nich wydostać.
źródło
jakie są sytuacje, w których użyłbyś First i kiedy użyć FirstOrDefault?
jaki problem rozwiązuje LINQ?
co się stanie, gdy otoczysz zapytanie .ToList?
źródło
Poproś, aby zbudowali mały silnik reguł, używając zasad Func [] {}. Każda reguła musi być prawdziwa, tablica zastępuje wielkość liter lub instrukcje if.
Właśnie zacząłem od linq i lambdas, ale myślę, że to niezły test rozwiązywania problemów i znajomości linq.
Oprócz bardziej wykwalifikowanych sugestii tutaj.
źródło