有人可以解释如何DefaultIfEmpty()在LINQ中使用.我准备了一些材料,但仍然需要一些坚实的东西来看看它的用途.
vc *_* 74 37
它基本上返回一个带有单个元素的集合,以防源集合为空.
var numbers = new int[] {1, 2, 3};
var aNumber = numbers.First();
Run Code Online (Sandbox Code Playgroud)
返回1
但
var numbers = new int[];
var aNumber = numbers.DefaultIfEmpty(12).Single();
Run Code Online (Sandbox Code Playgroud)
当集合为空时返回12
小智 7
不同之处在于,当FirstOrDefault返回一个对象时,DefaultIfEmpty返回一个对象集合.如果没有找到结果,则DefaultIfEmpty仍返回一个具有默认值的单个项的Enumerable,而FirstOrDefault返回T本身.
如果需要始终需要集合结果,则使用DefaultIfEmpty,例如创建外部联接.如果您总是需要对象(而不是集合)结果,则使用FirstOrDefault,例如,如果您想在搜索ID或唯一电子邮件等内容时获取第一个项目(或仅限项目),并且想要返回默认的空项目如果找不到您要搜索的项目.
| 归档时间: |
|
| 查看次数: |
25500 次 |
| 最近记录: |