我有这两门课:
public class Item
{
public int Id{get;set;}
public List<Test> TestList{get;set;}
}
public class Test
{
public int Id{get;set;}
public Item Item{get;set;}
public byte State{get;set;}
}
项目类别数据:
Id
1
2
3
和测试类数据:
Item State
1 1
1 2
1 3
2 1
2 4
3 2
现在我需要编写一个查询,从我的类中选择状态为 1 和 2 的项目。例如,对于上面的示例,它应该返回 Item=3 的行。
我写了这个查询:
var stateList=new List<byte>(){1,2};
Items.Where(x => x.TestList.Select(c => c.State).Any(s => stateList.Contains(s)));
但它也返回 Item=1。有什么想法吗?
这将返回所有状态所在的项目stateList
,我认为这就是你所需要的:
Items.Where(x => x.TestList.All(s => stateList.Contains(s.State)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)