和/或方案与Linq可能的解决方案

本文关键字:解决方案 Linq 方案 | 更新日期: 2023-09-27 18:05:29

我有一个特定的场景,我想用LINQ解决,但我卡住了。我希望有人能给我一个例子或一些关于如何解决这个问题的指点。我对LINQ相当陌生。

我有两个集合,它们包含相同类型的对象(对于示例来说,对象类型并不重要)。

集合A包含'A11'和'A12'。

集合B包含'B11'和'B12'。

我有第三个集合,它应该根据以下规则包含上述元素的子集:

(1 element of B AND (A11 OR A12))

如果我写出所有的可能性这就变成了

(B11 AND (A11 OR A12))
(B12 AND (A11 OR A12))

当然,在我的场景中,这些集合可能会变得更大。

我该如何在LINQ中解决这个问题,以查看我的集合C是否根据特定的AND/OR规则是正确的?

和/或方案与Linq可能的解决方案

你可以把它分成两个单独的linq查询,并把它们组合在一起

if(collectionC.Intersect(collectionA).Any() && collectionC.Intersect(collectionB).Any())

当collectionC包含至少一个来自collectionA和至少一个来自collectionB

如果你想对计数有更多的控制,你可以替换

.Any() 

上的

Count() > 0

关于相交操作的更多信息http://code.msdn.microsoft.com/linq -设置-运营商- 374 - f34fe # intersect1