title: check if items are not in a keyvaluepair list
body: <p>I have a list of type <code>List&lt;KeyValuePair&lt;string, bool&gt;&gt;</code>.  This list contains 8 items.  I also have a string <code>line</code>.  I'm trying to check if <code>line</code> does not contain a word from the <code>TKey</code> (string) and the <code>TValue</code> is false.</p>
  
  <p>I'm not using a dictionary because <code>lst</code> could potentially contain duplicates.  </p>
  
  <p>This should be true if <code>line</code> does not contain any <code>TKey</code> where the corresponding <code>TValue</code> is false.  </p>
  
  <p>It seems that neither <code>Any</code> nor <code>All</code> are suiting my needs here:</p>
  
  <pre><code>if (lst.Any(x =&gt; !line.Contains(x.Key) &amp;&amp; x.Value == false)
  {
     // this is always true even if line does contain a TKey.
     // I'm not exactly sure why.
  }
  
  if (lst.All(x =&gt; !line.Contains(x.Key) &amp;&amp; x.Value == false)
  {
     // this is always false even if line does not contain a TKey.
     // I think it would only be true if line contained *every* TKey?
  }
  </code></pre>
  
  <p>Is there a way to do this?</p>