Where和Single之间的区别

Sna*_*ake 3 linq

我试图找出Where(Expression)和Single(Expression)之间的区别.

Expression传递给单个转发到Where函数吗?

例如,这两个陈述是一样的吗?

var result = context.Persons.Single(p => p.ID == 5);
var result2 = context.Persons.Where(p => p.ID == 5).Single();
Run Code Online (Sandbox Code Playgroud)

dan*_*shr 5

Single给你一个回报Person,而Where你会回报你IEnumerable<Person>.

将where表达式传递给单个表达式只是语法糖.

两条线在功能上都是等效的.我想象的第一个可能会更有效率.在我看来,这也更容易.