首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >LINQ中何时使用SingleOrDefault与FirstOrDefault()?

LINQ中何时使用SingleOrDefault与FirstOrDefault()?

提问于 2017-12-22 09:36:51
回答 2关注 0查看 1.7K

考虑IEnumerable扩展方法SingleOrDefault()和FirstOrDefault()

MSDN文档SingleOrDefault:

返回序列的唯一元素,如果序列为空,则返回默认值; 如果序列中有多个元素,则此方法将引发异常。

而FirstOrDefault从MSDN(推测当使用OrderBy()或 OrderByDescending()或根本没有),

返回序列的第一个元素

考虑一些示例查询,使用这两种方法时并不总是很清楚:
var someCust = db.Customers
.SingleOrDefault(c=>c.ID == 5); //unlikely(?) to be more than one, but technically COULD BE
var bobbyCust = db.Customers
.FirstOrDefault(c=>c.FirstName == "Bobby"); //clearly could be one or many, so use First?
var latestCust = db.Customers
.OrderByDescending(x=> x.CreatedOn)
.FirstOrDefault();//Single or First, or does it matter?

问题

使用SingleOrDefault()和FirstOrDefault()LINQ查询时遵循什么约定?

相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档