1

クエリを作成するには、クエリ式を使用する 2 つの方法があるようです。

IEnumerable<Customer> result =
                        from customer in customers
                        where customer.FirstName == "Donna"
                        select customer;

または拡張メソッドを使用する:

IEnumerable<Customer> result =
           customers.Where(customer => customer.FirstName == "Donna");

どちらを使用し、その理由は何ですか? 長期的にはどちらがより人気があると思いますか?

4

4 に答える 4

1

クエリ構文にはより多くの制限があるため、メソッド構文を (ほぼ) 排他的に使用します。保守性の理由から、後で変換したり、両方の構文を組み合わせて使用​​したりするよりも、メソッド構文をすぐに使用する方が望ましいと思います。

最初は少し読みにくいかもしれませんが、慣れると自然に読めるようになります。

于 2009-07-06T05:04:25.243 に答える
1

式の構文で使用できる操作の数は限られています。たとえば、Take() または First() は拡張メソッドを使用してのみ使用できます。

個人的には、必要な操作がすべて利用できる場合は式を好みます。そうでない場合は、ラムダよりも読みやすいので、拡張メソッドにフォールバックします。

この回答を見て、

Linq 拡張メソッドと Linq 構文

于 2009-07-06T04:03:43.117 に答える
0

メソッド構文のみを使用します。これは、書く方がはるかに高速であることがわかり、大量の linq を書いているためです。それはより簡潔なので、私もそれが好きです。チームで作業している場合、2 つのスタイルを混在させると読みにくいため、どちらのスタイルが好ましいかについて合意に達することがおそらく最善です。

Microsoft は、クエリ構文を推奨しています。「一般的に、クエリ構文の方が単純で読みやすいため、クエリ構文をお勧めします」. http://msdn.microsoft.com/en-us/library/bb397947.aspx

于 2009-07-06T05:11:15.057 に答える
0

どちらが読みやすいかは、あなたとあなたのチームによって異なります。私はケースバイケースでこれを選択します。構文形式の方が読みやすいクエリもあれば、メソッド形式の方が読みやすいクエリもあります。そしてもちろん、どちらか一方の言い方ができない、またはどちらか一方を好む人もいれば、どちらかを好む人もいます。

読みやすくするために、両方の形式を混在させることができることに注意してください。

どちらの形式も将来消えると疑う理由はありません。

于 2009-07-06T05:25:57.307 に答える