我有一个简单的lambda表达式,如下所示:
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty)
Run Code Online (Sandbox Code Playgroud)
现在,如果我想在表达式中l.InternalName != String.Empty再添加一个where子句,那么表达式是什么?
Rub*_*ias 108
可
x => x.Lists.Include(l => l.Title)
.Where(l => l.Title != String.Empty && l.InternalName != String.Empty)
Run Code Online (Sandbox Code Playgroud)
要么
x => x.Lists.Include(l => l.Title)
.Where(l => l.Title != String.Empty)
.Where(l => l.InternalName != String.Empty)
Run Code Online (Sandbox Code Playgroud)
在查看Where实现时,您可以看到它接受了Func(T, bool); 这意味着:
T 是你的IEnumerable类型bool 意味着它需要返回一个布尔值所以,当你这样做的时候
.Where(l => l.InternalName != String.Empty)
// ^ ^---------- boolean part
// |------------------------------ "T" part
Run Code Online (Sandbox Code Playgroud)
Aak*_*shM 13
您传递给的lambda Where可以包含任何普通的C#代码,例如&&运算符:
.Where(l => l.Title != string.Empty && l.InternalName != string.Empty)
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用&&运算符将其包含在相同的where语句中...
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty
&& l.InternalName != String.Empty)
Run Code Online (Sandbox Code Playgroud)
您可以使用任何比较运算符(将其视为执行if语句),例如...
List<Int32> nums = new List<int>();
nums.Add(3);
nums.Add(10);
nums.Add(5);
var results = nums.Where(x => x == 3 || x == 10);
Run Code Online (Sandbox Code Playgroud)
...会带回3和10.
| 归档时间: |
|
| 查看次数: |
147294 次 |
| 最近记录: |