选择与LINQ中的位置之间的区别

kev*_*vin 6 c# linq

可能重复:
Linq:Select和Where之间有什么区别

有什么区别

var a = Doc.Document.Where(n => n.Id == id).SingleOrDefault(); 
Run Code Online (Sandbox Code Playgroud)

var b = Doc.Document.Select(n => n.Id == id).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

为什么变量b是布尔值?

抱歉我的无知,我是LINQ的新手.

Sam*_*der 11

Where根据谓词过滤一系列值.因此,在第一个示例中,您将从列表中选择函数n.Id == id为true的元素.

选择将序列的每个元素投影到一个新表单中,因此在第二个示例中,您将获得一个布尔值列表,这是n.Id == id每个元素上函数的结果.