我有一个包含值1到30的公司类型ID列表 在每笔交易中,我都有一些公司参与了这笔交易。
我想检查特定交易中的所有公司是否都有ID为6,16
我这样使用 list.All(x => x.id == 6 || x.id == 16)
但是,只有当该交易包含所有公司为id 6或16时,这才有效。但是如果一个公司的id为6而其他公司的公司为16,那么这个条件就会失败。
任何帮助?
答案 0 :(得分:0)
尝试查找不属于任何ID的项目。
var fail = list.Any(item => item.id != 6 && item.id != 16);
UPDATE for sub-type id
var fail = list.Any(item => item.id != 6 && !(item.id == 16 && item.subtypeid == 100));
如果我们做一些布尔代数技巧并将AND逻辑更改为OR逻辑,可能更容易阅读逻辑;
var fail = list.Any(item => !(item.id == 6 || (item.id == 16 && item.subtypeid == 100)));
答案 1 :(得分:0)