Any()
次のクエリで何をしていますか?
context.Customers
.Include("InternetSales")
.Where(c => c.InternetSales.Any())
.Take(100);
このクエリを平易な英語でどのように読み上げますか?たとえば、次のように正確でしょうか?
「関連する100のインターネット販売で顧客を獲得します。」
(コードに「get」がないことは知っていますが、私が言っていることはわかります。)
オペレーターは、Any
いくつかの列挙可能/コレクションに少なくとも 1 つのアイテムが含まれているかどうか、つまり空でないかどうかをチェックします。
したがって、クエリは次のように読めると思います。
「少なくとも 1 つのインターネット販売を行った最初の 100 人の顧客」
または、金属にいくらか近い:
Customer
「空でないInternetSales
コレクションを持つ最初の 100 個のオブジェクト」
.Any()
に似て.Count() > 0
いますが、コレクション内の最大 1 つのアイテムを消費しますが、 はコレクション全体をCount
消費するため、Any
通常はより効率的で、無限のシーケンスでも機能します。アイテムの正確な数に関心がない場合は、Any
空でないことをより明確にチェックする意図も表現します。