title: Best match between two strings when the order or number of times a word appears is not important?
body: <p>What is the best algorithm to match or compute the distance between two strings in C# when the order or number of times a word appears is not important?</p>
  
  <p>Best means:</p>
  
  <ul>
  <li>Would mostly agree with a human match</li>
  <li>Elegant</li>
  <li>Efficient</li>
  <li>Scalable, so that an input string could be matched to a potentially large collection of other strings</li>
  </ul>
  
  <p>Related questions:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/49263/approximate-string-matching-algorithms">Approximate string matching algorithms</a></li>
  <li><a href="https://stackoverflow.com/questions/613133/efficient-string-matching-algorithm">Efficient string matching algorithm</a></li>
  </ul>
  
  <p>Some notes:</p>
  
  <ul>
  <li>Because of the order and occurrence independence, the inputs can be thought of as sets of unique words, not strings in the sense of arrays of characters</li>
  <li>Not specifically looking for a database solution, although one would be interesting</li>
  <li>I'm way too old for this to be a homework problem ;)</li>
  </ul>