我正在尝试使用serval构建一个lambda表达式,其中where子句相互之间.
项目,webProperties和配置文件都是列表.我试图找到一个包含3级列表的配置文件.实际上,我真正想做的就是验证它确实存在.
var x = AccountSummeriesResponse.items.Where(wp => wp.webProperties.Where(p => p.profiles.Where(a => a.id == profile ))).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'bool'
Rah*_*ngh 10
问题是Enumerable.Where返回,IEnumarable<T>但谓词Where预期boolen.您可以使用Any代替: -
var x = AccountSummeriesResponse.items
.Where(wp => wp.webProperties.Any(p => p.profiles.Any(a => a.id == profile )))
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
此外,您可以像这样替换Where with FirstOrDefault: -
var x = AccountSummeriesResponse.items
.FirstOrDefault(wp => wp.webProperties.Any(p => p.profiles
.Any(a => a.id == profile )));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3250 次 |
| 最近记录: |