有人可以解释如何在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