title: Most efficient way to filter files by content
body: <p>I am using the .NET framework and I would like to develop a tool that would be able to filter files out depending of their content.</p>
  
  <p>A little bit of context
  I have numerous files representing deck lists (mtg).
  They all look very similar, and follow this pattern: {number} {card name} \n</p>
  
  <p>Ex:</p>
  
  <pre><code>2 Watery Grave
  1 Polluted Delta
  1 Steam Vents
  </code></pre>
  
  <p><em>Note: for what I want to achieve the number is irrelevant and can be ignored.</em></p>
  
  <p>The goal is to find 3 decks with with no matching cards.</p>
  
  <p>To do so we I need to update a list of 'remaining available decks' which is filtered depending of the decks already selected.</p>
  
  <p>Ex:</p>
  
  <p>When no deck is selected yet, the 'remaining available decks' list contains all of the files.</p>
  
  <p>Then let's say the deck used as an exemple above is selected, the list will update to only contain the files that do NOT contain Watery Grave, Polluted Delta or Steam Vents.</p>
  
  <p>Because of the quantity of files involved, I am scared of the performances of doing this search by opening and reading each file once a deck is selected.</p>
  
  <p>If someone has some input regarding how to efficiently implement this, like a third-party framework, a specific design pattern, or a custom class that would be very appreciated.</p>
  
  <p>Thank you</p>