我有一个包含 3 列的表:
名称 varchar
测试1 位
测试2 位
组 varchar
客观的:
我想选择每个组的每个名称只有 test1 为真的所有行。
为了澄清,以这些示例记录为例:
Name | Test1 | Test2 | Group
Foo True False Group 1
Bar True False Group 1
Bar False True Group 2
Foo False True Group 1
123 True False Group 1
第二行将被选中,因为它从未为具有相同“名称”值的同一组的 Test2 测试为真。
第一行将不会被选中,因为它在表中的某个位置对具有相同组名的 Test2 测试为真。
最后一行将被选中,因为它从未对 Test2 进行过测试。
注意:我有明确搜索的组名。
我试过的
我尝试过(并且有效)是选择测试 1 为真的所有行。然后,我对每个 id 进行了另一次搜索(遍历第一个查询的结果)并测试它是否再次出现。我在这里所做的是一种解决方法,我知道 Linq 有很多“不存在的地方”功能,我想利用它们来改善我到目前为止所写内容的状态,所以希望我可以全部推出成一个声明。
代码示例
var items = itemsTable.Where(o => o.Group.Equals(GroupName) && o.Test1);