linq查詢frist出錯解決

2021-07-09 15:33:15 字數 1087 閱讀 2675

//linq查詢booklist集合中是否有該書

objbook = (booklist.where(b => b.barcode=(this.txtbarcode.text.trim()))).first();

錯誤:查不到書時會報錯,改下面的就正常了

//linq查詢booklist集合中是否有該書

objbook = (booklist.where(b => b.barcode=(this.txtbarcode.text.trim()))).firstordefault();

這裡以first、firstordefault進行說明,其他類似。

1、first:取序列中滿足條件的第乙個元素,如果沒有元素滿足條件,則丟擲異常

2、firstordefault:取序列中滿足條件的第乙個元素,如果沒有元素滿足條件,則返回預設值(對於可以為null的物件,預設值為null,對於不能為null的物件,如int,預設值為0)

first、firstordefault的區別在於:當沒有元素滿足條件時,乙個丟擲異常,乙個返回預設值。

因此,在使用時,一定要注意這個區別:

1、當確信序列中一定有滿足條件的元素時,使用first方法,取到元素後,無需判斷是否為null

2、當序列中可能找不到滿足條件的元素時,使用firstordefault方法,然後,一定要對返回值是否為null,進行不同的處理a

操作符如果源序列是空的

源序列只包含乙個元素

源序列包含多個元素

first

拋異常返回該元素

返回第乙個元素

firstordefault

返回default(tsource)

返回該元素

返回第乙個元素

last

拋異常返回該元素

返回最後乙個元素

lastordefault

返回default(tsource)

返回該元素

返回最後乙個元素

single

拋異常返回該元素

拋異常singleordefault

返回default(tsource)

返回該元素

拋異常

預設查詢方案,出錯解決方法

通過查詢框提供儲存預設查詢方案的功能,設定後下次執行時系統直接以預設條件查出記錄,不再彈出查詢框。有時該功能設定後會報錯,導致使用者無法再執行功能,也無法清除預設查詢方案,此時可以使用以下sql語句從資料庫直接刪除 刪除預設查詢方案 delete from t query querysolution...

LINQ 之 基本 LINQ 查詢操作

在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...

LINQ 查詢彙總

子查詢 描述 查詢訂單數超過5的顧客資訊 查詢句法 var子查詢 from c in ctx.customers where from o in ctx.orders group o by o.customerid into o whereo.count 5 select o.key contain...