title: Create all combinations of two sets
body: <p>I have two lists of strings, they are actually values of primary keys in database:</p>
  
  <pre><code>        List&lt;string&gt; hisSpecialtyKeysInDB = this.Repository.GetSpecialtyKeysOfThisProvider(providerKey);
          List&lt;string&gt; hisAddressKeysInDB = this.Repository.GetAddressKeysOfThisProvider(providerKey);
  </code></pre>
  
  <p>Either of them may or may not even have a value in it.</p>
  
  <p>I want a combination of all possible combinations of these primary keys that these two lists might have. ( so for example if one has 3 items, the other has two items, I want to see six items)</p>
  
  <p>I wrote this query below but its count is zero which is wrong. <strong>In my test one of these had zero items in it</strong> and the other had three, so I want three items to return. Can put the empty ones as string.Empty, that is fine by me. </p>
  
  <pre><code>        var temp = from ps in hisAddressKeysInDB
                     from pa in hisSpecialtyKeysInDB
          select new
          {
              PS = ps,
              PA = pa
          };
  
          int xxxxx = temp.Count();
  </code></pre>