0

LINQ を使用して解決したい特定のシナリオがありますが、行き詰まっています。これを解決する方法について、誰かが私に例やいくつかの指針を教えてくれることを願っています。私はLINQにかなり慣れていません。

同じタイプのオブジェクトを含む 2 つのコレクションがあります (この例では、オブジェクトの種類は重要ではありません)。

コレクション A には、「A11」と「A12」が含まれています。

コレクション B には 'B11' と 'B12' が含まれています。

次のルールに従って、上記の要素のサブセットを含める必要がある 3 番目のコレクションがあります。

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

したがって、すべての可能性を書き出すと、次のようになります。

(B11 AND (A11 OR A12))

(B12 AND (A11 OR A12))

もちろん、私のシナリオでは、これらのコレクションは大きくなる可能性があります。

コレクション C がその特定の AND/OR ルールに従って正しいかどうかを確認するには、LINQ でこれをどのように解決すればよいでしょうか?

4

1 に答える 1

2

それを2つの別々のlinqクエリに分けて、それらを組み合わせることができます

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

これは、collectionC に collectionA の少なくとも 1 つと collectionB の少なくとも 1 つが含まれている場合に当てはまります。

カウントをより細かく制御したい場合は、置き換えることができます

.Any() 

各コレクションで

Count() > 0

交差操作の詳細 http://code.msdn.microsoft.com/LINQ-Set-Operators-374f34fe#intersect1

于 2013-03-22T08:46:31.320 に答える