假设你的LINQ查询where子句中有参数,你如何处理?
这是一个例子:
var peoples= from i in individuals
where (string.IsNullOrEmpty(lastName) i.LastName.Equals(lastName))
select i;
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 15
试着了解幕后发生的事情:
对两种查询表达式都很熟悉,例如
var query = from person in people
where person.IsAdult
select person.Name;
Run Code Online (Sandbox Code Playgroud)
和"点符号":
var query = people.Where(person => person.IsAdult)
.Select(person => person.Name);
Run Code Online (Sandbox Code Playgroud)
了解两者都可以让您为任何特定查询选择最易读的形式.
Eri*_*ert 10
查询表达式的结果是查询对象,而不是查询的结果.如果需要结果,可以要求查询对象开始提供结果.也就是说,当你说:
var names = from c in customers where c.City == "London" select c.Name;
Run Code Online (Sandbox Code Playgroud)
然后,names是一个查询对象,代表"让我得到伦敦所有客户的名字".这并不是记忆居住在伦敦的所有客户名单的顺序; 查询结果按需计算.直到你说:
foreach(var name in names) ...
Run Code Online (Sandbox Code Playgroud)
计算实际结果.
这意味着如果两次询问同一个查询对象的结果,答案可能会有所不同.客户列表可能在您第一次询问和第二次询问之间发生了变化.因为查询推迟获得结果,所以您总能获得新的结果.但是你有时会做两次相同的工作.
| 归档时间: |
|
| 查看次数: |
1846 次 |
| 最近记录: |