有人可以解釋如何在LINQ中使用DefaultIfEmpty()
。我已準備好一些材料,但仍需要堅實的東西來看看它的用途。LINK中的DefaultIfEmpty
35
A
回答
37
它基本上返回一個集合與一個單一的元素,如果源集合是空的。
var numbers = new int[] {1, 2, 3};
var aNumber = numbers.First();
返回1
但
var numbers = new int[];
var aNumber = numbers.DefaultIfEmpty(12).Single();
返回12作爲集合爲空
7
所不同的是,同時FirstOrDefault返回一個對象的DefaultIfEmpty返回對象的集合。如果沒有找到結果,則DefaultIfEmpty仍會返回帶有默認值的單個項目的Enumerable,而FirstOrDefault返回T本身。
如果您需要始終需要收集結果(例如創建外連接),則使用DefaultIfEmpty。如果您始終需要一個對象(而不是集合)結果,則使用FirstOrDefault,例如,如果要在搜索某個ID或唯一電子郵件之類的內容時獲取第一個項目(或僅包含項目),並且要返回默認的空項目如果沒有找到您正在搜索的項目。
相關問題
- 1. DefaultIfEmpty?
- 2. DefaultIfEmpty()不工作
- 3. Linq To SQL DefaultIfEmpty
- 4. LINQ NullReferenceException對DefaultIfEmpty
- 5. Linq to Entities DefaultIfEmpty
- 6. 改善與DefaultIfEmpty
- 7. 在對象中使用DefaultIfEmpty?
- 8. leftOuterJoin和`.DefaultIfEmpty()`在F#
- 9. DefaultIfEmpty返回空行
- 10. RxSwift相當於DefaultIfEmpty
- 11. DefaultIfEmpty - LINQ to SQL vs In Memory
- 12. Browser-Link中的JavaScript錯誤
- 13. LINQ的羣組加入與DefaultIfEmpty
- 14. 使用.DefaultIfEmpty()代替.FirstOrDefault()?的String.Empty;
- 15. 左外LINQ的加入不DefaultIfEmpty
- 16. LINQ的加入IQUERY,如何使用defaultifempty
- 17. Linq,OrderByDescending,首先,和邪惡的DefaultIfEmpty
- 18. 的Javadoc @link
- 19. Linq中的使用DefaultIfEmpty - 問題的默認值代入空值
- 20. 實體框架錯誤使用DefaultIfEmpty()
- 21. DefaultIfEmpty在哪裏用linq查詢樣式
- 22. Defaultifempty似乎在linq工作實體
- 23. LINQ的外連接和指定DefaultIfEmpty值 - 匿名類型不包含定義defaultifempty ..需要類型
- 24. Apple Mach-O Link
- 25. Deep Link Fallback
- 26. Javascript link in image
- 27. 動態SSRS LInk
- 28. LINK錯誤2019
- 29. Laravel 5.4 Anchor Link
- 30. link viewmodel查看
你對它的用法有什麼不瞭解? – Oded 2012-01-13 16:52:44
我真的不明白你會用它來做什麼。它返回'IEnumerable',所以如果你使用了'.DefaultIfEmpty()。First()'和'.FirstOrDefault()'... [MSDN上的例子](http://msdn.microsoft.com/)。 com/en-us/library/bb360179.aspx)非常糟糕。 –
Ryan
2012-01-13 16:53:49
一個用法是,你不必用'if(x!= null)'測試來分解代碼。 – ChrisF 2012-01-13 16:53:55