Senior Interview LINQ questions [geschlossen]


16

Ich bereite einen LINQ-Abschnitt mit Interviewfragen für leitende Programmierer vor. Was sind die interessantesten Fragen in LINQ? Und warum?

Antworten:


28

Einige der Dinge, die Sie fragen können, wären wie.

  • Warum wird das varSchlüsselwort verwendet und wann ist es die einzige Möglichkeit, ein Abfrageergebnis zu erhalten?
  • Was ist die verzögerte Ausführung?
  • Erläutern der Abfrageausdruckssyntax, der fließenden Syntax und der gemischten Abfragen.
  • Was sind interpretierte Abfragen?
  • Verwendung von IQueryableund IEnumerableSchnittstellen.
  • Verwendung von let und intoSchlüsselwort und wie sie dabei helfen, progressive Abfragen zu erstellen, aber die verzögerte Ausführung beizubehalten
  • Was sind Ausdrucksbäume?


Aktualisieren:

Detaillierte Antworten finden Sie in diesem schönen Beitrag von Oleksii


8
Gute Fragen. Ich könnte versucht sein, Codebeispiele zu nennen und zu sagen: "Was macht das?" Ich bin nicht ganz davon überzeugt, dass Sie wissen müssen, was der Begriff Fluent Syntax bedeutet, um ihn zu verwenden und zu verstehen.

hmmm, und wenn sie diese Themen vorher googeln und auswendig lernen, wie sagt Ihnen dieser Ansatz, dass sie tatsächlich jede reale LINQ-Welt ausführen können?
Darknight

dann, wie BTyler oben sagte ... können Sie die obigen Fragen mit Codebeispielen ergänzen.
Shekhar_Pro

1
Dieser Typ hat über die Lösungen für all diese Fragen gebloggt
Nick Larsen

Habe

13

Bitten Sie sie, Beispiele für Zeiten zu nennen, in denen LINQ in der Regel nicht verwendet wird, und warum, obwohl dies möglich wäre (und ReSharper schlägt dies aufgeregt vor).


6

Sie könnten anfangen, aber fragen, welche in C # 3 eingeführten Sprachfunktionen für die Unterstützung von LINQ erforderlich sind. Versteht der Kandidat, wie Funktionen wie das Schlüsselwort var sowie anonyme Typen, Lambda-Ausdrücke und Erweiterungsmethoden benötigt wurden, um LINQ zu aktivieren?


Warum sind für meine eigene Neugier anonyme Typen notwendig? Sie können zur Vereinfachung für ausgewählte Ergebnisse verwendet werden, aber Sie können auch Ihre eigenen Klassen mit benannten Eigenschaften definieren, nicht wahr?
Rup

@Rup | Es ist nur eine Frage der Bequemlichkeit und des syntaktischen Zuckers. Sie können natürlich auch gut definierte Klassen erstellen (der Compiler erledigt das ohnehin für Sie hinter den Kulissen). Bei der Verwendung von LINQ-Abfragen benötigen Sie jedoch sofort einen Typ, der die Ergebnisse enthält. Jetzt scheint es nicht mehr sinnvoll zu sein, Klassen für jeden Typ zu erstellen. Dies kann zu mehr Code führen und zu Problemen führen, wenn sich die Ergebnismenge später ändert.
Shekhar_Pro

Das stimmt nicht. Anonyme Typen sind für Linq-to-SQL-Projektionen erforderlich, um beispielsweise nur bestimmte Spalten aus einer Tabelle / Entität auszuwählen.
Joniba

6

Wie wäre es mit einigen Codierungsfragen, wie:

  • Geben Sie dann Nicht-LINQ-Code ein, der besser in LINQ ausgeführt werden könnte, und lassen Sie ihn übersetzen.
  • Geben Sie ihnen etwas LINQ und lassen Sie sie in einfachem C # entwirren und neu schreiben (noch besser, finden Sie ein Beispiel, in dem die Nicht-LINQ-Version besser oder leichter zu verstehen ist).
  • Bitten Sie sie, ein Problem zu lösen und zeigen Sie mit / ohne LINQ und lassen Sie sie erklären, was besser ist und warum.

Lehrbuchfragen sind in Ordnung (z. B. warum verwenden var), aber um wirklich herauszufinden, ob sie verstehen, müssen sie nur Code schreiben.


4

Wenn Sie nach einer Frage suchen, auf die Sie "interessante" Antworten erhalten, könnten Sie sie fragen, warum sie glauben, dass die meisten Linq-Beispiele sie mit dem Schlüsselwort "var" auf der LHS zuordnen ... es gibt keine richtige Antwort und Sie könnten es wahrscheinlich Machen Sie sich anhand ihrer Aussagen ein Bild von der Art der Person, die sie sind.


3

Fragen Sie sie nach Ausdrucksbäumen. Wie das Linq auf dem Datenbankserver den Unterschied zwischen den Linq-Erweiterungsmethoden und den Linq-Abfragen in SQL umwandelt

Hängt davon ab, was Sie versuchen, aus ihnen herauszukommen.


1
  • In welchen Situationen würden Sie First verwenden und wann FirstOrDefault?

  • Welches Problem löst LINQ?

  • Was passiert, wenn Sie die Abfrage in .ToList einschließen?


ermöglicht eine verzögerte Ausführung.
Linquize

reduziert die Wahrscheinlichkeit der Verwendung für / foreach - Schleife der Lesbarkeit zu verbessern
linquize

0

Bitten Sie sie, eine kleine Regelengine mit Func [] rules {} zu erstellen. Jede Regel muss true sein, wobei das Array case- oder if-Anweisungen ersetzt.

Ich habe gerade mit Linq und Lambdas angefangen, aber ich glaube, dies ist ein guter Test für Problemlösung und Linq-Kenntnisse.

Neben den weiterführenden Vorschlägen hier.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.