6

Any()次のクエリで何をしていますか?

context.Customers
    .Include("InternetSales")
    .Where(c => c.InternetSales.Any())
    .Take(100);

このクエリを平易な英語でどのように読み上げますか?たとえば、次のように正確でしょうか?

「関連する100のインターネット販売で顧客を獲得します。」

(コードに「get」がないことは知っていますが、私が言っていることはわかります。)

4

1 に答える 1

19

オペレーターは、Anyいくつかの列挙可能/コレクションに少なくとも 1 つのアイテムが含まれているかどうか、つまり空でないかどうかをチェックします。

したがって、クエリは次のように読めると思います。

「少なくとも 1 つのインターネット販売を行った最初の 100 人の顧客」

または、金属にいくらか近い:

Customer「空でないInternetSalesコレクションを持つ最初の 100 個のオブジェクト」

.Any()に似て.Count() > 0いますが、コレクション内の最大 1 つのアイテムを消費しますが、 はコレクション全体をCount消費するため、Any通常はより効率的で、無限のシーケンスでも機能します。アイテムの正確な数に関心がない場合は、Any空でないことをより明確にチェックする意図も表現します。

于 2012-05-27T09:59:59.927 に答える