私は本当にLINQを掘り下げており、このラムダ式ビジネスをハッシュ化しようとしています。構文の微妙な違いのいくつかの利点が見当たらないだけです。主に、ラムダ式はほとんどの場合、Where句を使用する別の方法であるように思われます。では、Where句を使用しないのはなぜですか?ラムダ式はより効率的ですか?
別のグループからプログラマーを引き寄せてC#をより快適に感じるようにすることは、構文上の追加にすぎませんか?まだ公開していないラムダ式のより良いユースケースは他にありますか?
私は本当にLINQを掘り下げており、このラムダ式ビジネスをハッシュ化しようとしています。構文の微妙な違いのいくつかの利点が見当たらないだけです。主に、ラムダ式はほとんどの場合、Where句を使用する別の方法であるように思われます。では、Where句を使用しないのはなぜですか?ラムダ式はより効率的ですか?
別のグループからプログラマーを引き寄せてC#をより快適に感じるようにすることは、構文上の追加にすぎませんか?まだ公開していないラムダ式のより良いユースケースは他にありますか?
この記事を見てください:LINQクエリ構文とメソッド構文 :
一般に、クエリ構文をお勧めします。これは、通常、クエリ構文の方が単純で読みやすいためです。ただし、メソッド構文とクエリ構文の間に意味上の違いはありません。さらに、指定された条件に一致する要素の数を取得するクエリや、ソースシーケンスで最大値を持つ要素を取得するクエリなど、一部のクエリは、メソッド呼び出しとしてのみ表現できます。System.Linq名前空間の標準クエリ演算子のリファレンスドキュメントでは、通常、メソッド構文を使用しています。したがって、LINQクエリの作成を開始する場合でも、クエリおよびクエリ式自体でメソッド構文を使用する方法に精通していると便利です。
また、この質問:LINQ:ドット表記とクエリ式
これを読んでください。LINQクエリは、実行時にコンパイラによってLambda式に変換されます。
内部的に、コンパイラはクエリ構文をより明示的なラムダ構文に変換します。どちらのスタイルにも固有のパフォーマンスの向上はなく、ほとんどのシナリオで生成されたコードは、人間が手動で入力したものとほぼ同じです。
主な違いは、ラムダ構文を使用すると、動作して and を返す任意の拡張メソッドをチェーンできることですIEnumerable<T>
。クエリ構文を使用すると、言語で明示的にサポートされている特定の拡張メソッドに制限されます (言語によって異なります)。
クエリ構文を実際に使用するか使用しないかは、個人的な好みの問題です。