質問

私は本当にLINQに掘りしてきた、と私は、このラムダ式のビジネスをハッシュしようとしています。私は、構文のニュアンスのいくつかの利点を見ていませんよ。主に、ラムダ式が主にWhere句を使用するだけで別の方法であると私には思えます。なぜ私はちょうどそのWhere句を使用していないだろうか?ラムダ式は、より効率的ですか?

C#でより快適に感じるように、別のグループからプログラマを描くだけで、別の構文に加えますか?私はまだにさらされていないラムダ式のため、他のより良いユースケースはありますか?

役に立ちましたか?

解決

この記事を見てみましょう: LINQクエリの構文メソッド構文対 のます:

  

一般的に、我々は、クエリ構文をお勧めします   それは通常、より簡単であるため、   読めます。しかし、意味的にはありません   メソッドの構文との違い   クエリ構文。また、いくつかの   こうした取得するものなど、クエリ、   一致する要素の数   条件を指定し、またはそれが取得   最大値を有する要素   ソースシーケンスでは、唯一可能   メソッド呼び出しとして表さ。ザ・   リファレンスドキュメント   で標準クエリ演算子   System.Linqの名前空間は、一般的に使用しています   メソッドの構文。したがって、場合でも、   、LINQクエリを書き始めたばかり   どのように精通していると便利です   クエリ内とにメソッド構文を使用します   クエリは、自分自身を表現ます。

そしてまた、この質問: LINQ:ドット表記対クエリ式

他のヒント

このにお読みください。あなたのLINQクエリは、実行時にコンパイラによってラムダ式になってしまいます。

内部的には、コンパイラがより明示的なラムダ構文にクエリ構文を変換します。そこのいずれかのスタイルには固有のパフォーマンスの向上はありませんし、ほとんどのシナリオのために生成されたコードは、人々が手で入力する内容とほとんど同じです。

主な違いは、ラムダ構文で使用すると、任意の拡張メソッドチェーンがオフ動作して戻ってIEnumerable<T>ことができるということです。クエリ構文を使用すると、明示的に言語でサポートされている特定の拡張メソッドに限定されている(言語間で異なります)。

本当にクエリ構文を使用して使用するかではないことは、本当に個人の好みの問題です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top