Pages

2015-05-23

LINQ裏的Single與First差別比較

剛開始接觸LINQ的人會對常用的四大函式Single, SingleOrDefault, First, 及FirstOrDefault之差別感到疑惑,下圖是比較表:

LINQ Single vs SingleOrDefault vs First vs FirstOrDefault - Technical Overload
http://www.technicaloverload.com/linq-single-vs-singleordefault-vs-first-vs-firstordefault/

Method Comparsion

當遇到查詢某ItemId資料時,一般人會統一用FirstOrDefacut()來通吃,避掉Exception的發生。然而有些程序的重點是在於查到該Entity後的連續操作,若一開始的Entity找不到是致命錯誤,應該讓它發生Exception才對,這時候就得用SingleXXX()了。

至於XXXOrDefault()主要是當該筆資料找不到時,能得到null值。詳細的用法可以參加該網址下方的使用範例,善用這類的Lambda表達式,可以比from…select語法更精簡。

No comments: