LINQ: SingleOrDefault与FirstOrDefault()什么时候使用过滤条件
LINQ: SingleOrDefault与FirstOrDefault()什么时候使用过滤条件
考虑 SingleOrDefault()
和 FirstOrDefault()
这两个 IEnumerable 扩展方法。
返回序列的唯一元素或默认值(如果序列为空);如果序列中有多个元素,则此方法会引发异常。
而 FirstOrDefault
from 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?
问题
在决定在 LINQ 查询中使用 SingleOrDefault()
和 FirstOrDefault()
时,您遵循或建议遵循哪些约定?
admin 更改状态以发布 2023年5月21日