Linq 中 Any與All

昨天突然看到之前寫的一個積累文檔,其中文檔中有一個Linq Any和All的注意事項:

注意Any All

??????????? var list = new List<int>();

??????????? var aa = list.All(n => n > 1);

??????????? var bb = list.Any(n => n > 1);

??????????? // aa: true?????? bb: false

?

其中List是一個元素個數為0的整型List。
可能大多數人跟我一樣,第一次見到都會認為aa為false。
然后這個是我在程序中寫Linq的時候,造成了很大困惑,明明條件是正確的(當時一直認為aa為false),卻結果不對。?
最后一句一句,一個條件一個條件的拆分了執行,才找到這個原因。
看看他生成的SQL,我們就知道原因了

All: ? ? ?IQueryable<Test>.All(t=>t.OpenId=="")

?1?--?Region?Parameters
?2?DECLARE?@p0?NVarChar(1000)?=?''
?3?--?EndRegion
?4?SELECT?
?5?????(CASE?
?6?????????WHEN?NOT?(EXISTS(
?7?????????????SELECT?NULL?AS?[EMPTY]
?8?????????????FROM?[Test]?AS?[t1]
?9?????????????WHERE?(
10?????????????????(CASE?
11?????????????????????WHEN?[t1].[OpenId]?=?@p0?THEN?1
12?????????????????????ELSE?0
13??????????????????END))?=?0
14?????????????))?THEN?1
15?????????WHEN?NOT?NOT?(EXISTS(
16?????????????SELECT?NULL?AS?[EMPTY]
17?????????????FROM?[Test]?AS?[t1]
18?????????????WHERE?(
19?????????????????(CASE?
20?????????????????????WHEN?[t1].[OpenId]?=?@p0?THEN?1
21?????????????????????ELSE?0
22??????????????????END))?=?0
23?????????????))?THEN?0
24?????????ELSE?NULL
25??????END)?AS?[value]

?可以看得出來, All 是用的 Not (Exists) , 當Query為空的時候,Exists是為false的,而前面一個Not (false),當然也成為了True;

?Any: ? ? ? ? ?IQueryable<Test>.Any(t=>t.OpenId=="")

??1?--?Region?Parameters

?2?DECLARE?@p0?NVarChar(1000)?=?''
?3?--?EndRegion
?4?SELECT?
?5?????(CASE?
?6?????????WHEN?EXISTS(
?7?????????????SELECT?NULL?AS?[EMPTY]
?8?????????????FROM?[Test]?AS?[t0]
?9?????????????WHERE?[t0].[OpenId]?=?@p0
10?????????????)?THEN?1
11?????????ELSE?0
12??????END)?AS?[value]

?

可以看出 ? Any生成的是Exists。??當Query為空的時候,Exists是為false的。

?

轉載于:https://www.cnblogs.com/AaronAndJoe/p/4642231.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258608.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258608.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258608.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jaxb轉xml空值雙標簽_單品運營思維:標簽-詞路-聚焦-直搜-超直

非標品標簽思維&#xff1a;針對非標品 主要是2.0為主的打法根據搜索入池的關鍵詞&#xff0c;有什么詞做什么詞。有個細節&#xff1a;不一定進什么詞做什么詞&#xff0c;這個維度當中加入3.0的思維3.0入手 轉2.0再切3.0(檢測詞路健康度&#xff0c;非嚴格意義估算單量)舉例&…

如何在PFSense中設置故障轉移和負載平衡

故障轉移是一種備份操作模式&#xff0c;僅在主系統由于系統故障或任何計劃停機時間而變得不可用時&#xff0c;系統組件&#xff08;如網絡&#xff09;的操作才由輔助系統承擔。在本教程中&#xff0c;我們將看到如何設置故障轉移和負載平衡&#xff0c;以使pfSense能夠將流量…

圖像金字塔總結

本文轉載自&#xff1a; http://blog.csdn.net/dcrmg/article/details/52561656 一、 圖像金字塔 圖像金字塔是一種以多分辨率來解釋圖像的結構&#xff0c;通過對原始圖像進行多尺度像素采樣的方式&#xff0c;生成N個不同分辨率的圖像。把具有最高級別分辨率的圖像放在底部…

表單的get和post使用情景

GET和POST兩種方法都是將數據送到服務器&#xff0c;但你該用哪一種呢&#xff1f;HTTP標準包含這兩種方法是為了達到不同的目的。POST用于創建資源&#xff0c;資源的內容會被編入HTTP請示的內容中。例如&#xff0c;處理訂貨表單、在數據庫中加入新數據行等。 當請求無副作用…

什么叫做羅列式_項目起盤的時候,如何確定自己該做什么社群?

這是祁杰『社群日記』第48篇持續日更&#xff0c;做最懂社群的營銷咨詢人很多人手上有資源&#xff0c;準備起盤項目的時候&#xff0c;總會思考一個問題&#xff1a;我能做什么樣的社群&#xff1f;今天我們從用戶需求出發&#xff0c;拆解一下哪些社群是能夠確切地滿足用戶的…

C++ exit 與 return 淺析

【摘要】 本文從代碼形式。經常使用方式&#xff0c;相關概念&#xff0c;調用關系和比較分析&#xff0c;這5個維度淺析 exit 與 return 在C的同樣點與差別。【常見形式】 exit(0)&#xff1a; 正常執行程序并退出程序。 exit(1)&#xff1a; 非正常執行導致退出程序&…

Feature Pyramid Networks for Object Detection 總結

最近在閱讀FPN for object detection,看了網上的很多資料&#xff0c;有些認識是有問題的&#xff0c;當然有些很有價值。下面我自己總結了一下&#xff0c;以供參考。 1. FPN解決了什么問題&#xff1f; 答&#xff1a; 在以往的faster rcnn進行目標檢測時&#xff0c;無論…

最近工作

最近的工作忙且亂&#xff0c;以至于&#xff0c;我第天早晨早早起來到晚上11點多才能回到家。今天早晨寫代碼的時候腰突然猛疼&#xff0c;疼的我直叫喚。躺在床上半天起不來。 最近每天的工作要計劃一下了&#xff0c;不能客戶說干嘛就干嘛&#xff0c;這樣累壞了自己&#x…

LeetCode OJ - Candy

題目&#xff1a; There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must have at least one candy.Children with a higher rating get mor…

那些 IT 界的神翻譯,原來我學不好編程的原因就在這

近日博主 ruanyf 在網上發布了一條關于套接字“socket”的解釋&#xff0c;引發了網友對于那些 IT 界的神翻譯的討論&#xff1a; 突然想到&#xff0c;socket就是插座。服務器的socket&#xff0c;就是服務器提供插座&#xff0c;等著客戶端的插頭插進來。一旦插入完成&#x…

navicat 結構同步會加鎖嗎_被柜員怠慢的張小波,真的會永久地轉走幾個億的結構性存款嗎?...

4月7日下午&#xff0c;北京鳳凰聯動文化傳媒有限公司總裁張小波發布微博稱&#xff0c;前幾天去安貞附近一銀行&#xff0c;想把借記卡的轉帳額度從每天五百萬上調一下&#xff0c;沒有想到&#xff0c;在其問到“最高可調到多少”時&#xff0c;柜員回答一個億并“鄙夷地看了…

Mask RCNN筆記

mask rcnn簡介 mask rcnn是何凱明基于以往的faster rcnn架構提出的新的卷積網絡&#xff0c;一舉完成了object instance segmentation. 該方法在有效地目標的同時完成了高質量的語義分割。 文章的主要思路就是把原有的Faster-RCNN進行擴展&#xff0c;添加一個分支使用現有的檢…

IOS開發之----常用函數和常數--秀清

介紹一下Objective-c常用的函數&#xff0c;常數變量 算術函數 【算術函數】函數名說明int rand()隨機數生成。&#xff08;例&#xff09;srand(time(nil)); //隨機數初期化int val rand()P; //0&#xff5e;49之間的隨機數int abs(int a)整數的絕對值&#xff08;例&#…

網頁設計中常用的19個Web安全字體

來自http://www.jb51.net 在Web編碼中&#xff0c;CSS默認應用的Web字體是有限的&#xff0c;雖然在新版本的CSS3&#xff0c;我們可以通過新增的font-face屬性來引入特殊的瀏覽器加載字體。但多數情況下&#xff0c;考慮各個因素的影響我們還是在盡量充分利用這些默認調用的字…

python slice是共享內存嗎_python共享內存實現進程通信

1.概述共享內存可以說是最有用的進程間通信方式.兩個不同的進程共享內存的意思是:同一塊物理內存被映射到兩個進程的各自的進程地址空間.一個進程可以及時看到另一個進程對共享內存的更新,反之亦然.采用共享內存通信的一個顯而易見的好處效率高,因為進程可以直接讀寫內存,而不需…

FCN-數據篇

從本篇開始&#xff0c;我們來記錄一下全卷積網絡用來做語義分割的全過程。 代碼&#xff1a;https://github.com/shelhamer/fcn.berkeleyvision.org 下面我們將描述三方面的內容&#xff1a; 1. 官方提供的公開數據集 2. 自己的數據集如何準備&#xff0c;主要是如何標注…

深圳本地網店代運營公司

◆★◆深圳本地網店代運營&#xff0c;淘寶代運營多少錢&#xff0c;微博運營公司&#xff0c;代運營平臺&#xff0c;天貓京東代運營&#xff0c;網站代運營圖 片&#xff0c; 北京京東代運營&#xff0c;網店代運營協議&#xff0c;京東店鋪代運營&#xff0c;網站代運營服務…

搜索專題題解

題目鏈接&#xff1a; codeforces 277A - Learning Languages 題目描述&#xff1a; 一個團體有n個人&#xff0c;每個人都掌握了一些語言&#xff0c;每個人學一門語言有1個花費&#xff0c;兩個人之間可以通過其他人的翻譯&#xff0c;問最少花費多少使得這個團體的任意兩個人…

Facebook 開源的快速文本分類器 FastTex

FastText是Facebook開發的一款快速文本分類器&#xff0c;提供簡單而高效的文本分類和表征學習的方法&#xff0c;性能比肩深度學習而且速度更快。 fastText 原理fastText 方法包含三部分&#xff1a;模型架構、層次 Softmax 和 N-gram 特征。下面我們一一介紹。 1.1 模型架構 …

FCN-加載訓練與測試數據

當我們生成了數據后&#xff0c;我們來看看FCN是如何加載數據的。 FCN 代碼預覽 其中&#xff1a; - data : 訓練測試數據 - ilsvrc-nets&#xff1a;存放預訓練的模型 - 剩下的框&#xff1a;不同數據集的訓練測試prototxt - voc_layers&#xff0c;siftflow_layers等&am…