personList
是一个ObservableCollection
它包含assignedChores
,List<Chore>
我正在“尝试”做的是查找人员列表中choreId == cObj.choreId
(传递给值)的所有项目。
然而,我的陈述似乎都没有允许它。我收到了错误:
无法隐式转换类型
System.Collections.Generic.IEnumerable<bool>
到'布尔'
var choreSearch = from p in personList
where p.assignedChores.Select(ac=>ac.choreId == (cObj.choreId))
select p;
OR
var result = personList.Where(pl => pl.assignedChores.Select(ac => ac.choreId == cObj.choreId));
答案 0 :(得分:4)
使用Any
代替Select
:
var result = personList.Where(pl => pl.assignedChores.Any(ac => ac.choreId == cObj.choreId));
答案 1 :(得分:0)
尝试将Select替换为Where
pl.assignedChores.Select(ac => ac.choreId == cObj.choreId)
返回bool序列
使用以下
pl.assignedChores.Where(ac => ac.choreId == cObj.choreId)
答案 2 :(得分:0)
我试着纠正你:
然而,我的陈述似乎都没有允许它。我收到了错误:
无法将System.Collections.Generic.IEnumerable类型隐式转换为'bool'
- 您需要.Any()
var choreSearch = from p in personList
where p.assignedChores.Select(ac=>ac.choreId == (cObj.choreId).Any())
select p;
- 与之前的
一样OR
var result = personList.Where(pl => pl.assignedChores.Select(ac => ac.choreId == cObj.choreId).Any());