LINQシニアインタビューの質問[終了]


16

シニアプログラマー向けのインタビューの質問のLINQセクションを準備しています。LINQで最も興味深い質問は何ですか?なぜ?

回答:


28

あなたが尋ねることができるもののいくつかは次のようになります。

  • varキーワードが使用される理由と、それがクエリ結果を取得する唯一の方法である場合
  • 遅延実行とは何ですか?
  • クエリ式の構文、流Fluな構文、混合クエリを説明します。
  • 解釈されたクエリとは何ですか?
  • IQueryableおよびIEnumerableインターフェースの使用。
  • let and intoキーワードの使用、およびそれらがプログレッシブクエリの作成に役立つが、それでも遅延実行を維持する方法
  • 式ツリーとは何ですか?


更新:

詳細な回答については、Oleksiiによるこの素敵な投稿を参照してください


8
素晴らしい質問です。コード例を挙げて「これは何をするの?」と言いたくなるかもしれません。Fluent Syntaxという用語が何を使用して理解するかを知る必要があると私は完全に確信していないので。

うーん、そして彼らがそれらのトピックを事前にグーグルで調べてそれを暗記するならば、このアプローチはどのように彼らが実際にどんな現実のLINQでもできることをあなたにどのように告げるか?
ダークナイト

BTylerが上記で述べたように...上記の質問をコードサンプルで補完できます。
Shekhar_Pro

1
この男は、これらすべての質問に対する解決策についてブログに書いています。blog4work.com
Nick Larsen

投稿を見ました、すてきな仕事:)
Shekhar_Pro

13

LINQを使用しない傾向がある場合の例と、それが可能であっても、その理由を挙げてください(そしてReSharperが興奮して提案しています)。


6

始めることはできますが、LINQをサポートするには、C#3で導入された言語機能がどのようなものかが必要です。候補者は、LINQを有効にするために、varキーワードや匿名型、ラムダ式、拡張メソッドなどの機能がどのように必要であったかを理解していますか?


私自身の好奇心のために、なぜ匿名型が必要なのですか?これらは便利な選択結果に使用できますが、名前付きプロパティを使用して独自のクラスを定義することもできますか?
ラップ

@Rup | その便利さだけでなく、構文上の砂糖..もちろん、明確に定義されたクラスを作成することができます(とにかくコンパイラーは舞台裏でそれを行います)。しかし、LINQクエリを使用している間は、結果を含めるために即座に型が必要になります...現在、各型のクラスを作成し続けるのは生産的ではないようです。これにより、結果セットが後で変更された場合、より多くのコードになり、維持が困難になる可能性があります
Shekhar_Pro

それは正しくありません。linq-to-Sqlプロジェクションでは、たとえばテーブル/エンティティから特定の列のみを選択するために、匿名型が必要です。
joniba

6

次のようなコーディングの質問はどうですか:

  • その後、LINQでより適切に行われる非LINQコードを提供し、それらを変換させます。
  • LINQを提供し、それらを解いてプレーンC#で書き直します(さらに、非LINQバージョンの方が優れているか、より簡単に理解できる例を見つけてください)
  • いくつかの問題を解決し、LINQを使用して/使用せずに表示するように依頼し、どちらが良いか、なぜかを説明してもらいます。

教科書の質問は問題ありません(例:を使用する理由var)が、理解できるかどうかを実際に調べるには、コードを書いてもらうだけです。


4

「興味深い」回答が得られる質問を探している場合、ほとんどのlinqの例がLHSの「var」キーワードを使用して割り当てると考える理由を尋ねることができます。正しい答えはありません。彼らが言っていることから、彼らがどのような人なのかをある程度理解する


3

表現ツリーについて質問します。linq拡張メソッドとlinqクエリの違いは、linqがデータベースサーバーでsqlに変換する方法

あなたがそれらから抜け出そうとしているものに依存します。


1
  • Firstを使用する状況とFirstOrDefaultを使用する状況は何ですか?

  • LINQはどのような問題を解決しますか?

  • .ToListでクエリをラップするとどうなりますか?


遅延実行を許可します。
リンキーズ

for / foreachループを使用して読みやすさを向上させる機会を減らします
9:07にlinquize

0

Func [] rules {}を使用して、小さなルールエンジンを構築するよう依頼します。各ルールはtrueでなければならず、配列はcaseまたはifステートメントを置き換えます。

私はlinqとlambdaを始めたばかりですが、これが問題解決とlinqリテラシーの素晴らしいテストであると考えています。

ここでのより適格な提案に加えて。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.