How to create a list of differences based on two other lists and include duplicates
<p>I have two lists</p>

<pre><code>List&lt;string&gt; list1 as new List&lt;string&gt;();
</code></pre>

<p>and </p>

<pre><code>List&lt;string&gt; list2 as new List&lt;string&gt;();
</code></pre>

<p>What I want to do is create a third list that is a list of differences.</p>

<p>Example:
list1 contains (Test1, Test2, Test3, Test4)
list2 contains (Test1, Test3)</p>

<p>I would want my new list to contain (Test 2, Test4)</p>

<p>I tried using</p>

<pre><code>newlist = list1.Except(list2).ToList();
</code></pre>

<p>and for the above example it works fine. </p>

<p>Example 2:
list 1 contains (Test1, Test1, Test2, Test2)
list 2 is empty</p>

<p>I want my newlist to contain everything (Test1, Test1, Test2, Test2)</p>

<p>If I use the same Except method I was using above I get in my newlist (Test1, Test2)</p>

<p>Is there a way I can include the duplicates?</p>

<p>One more final example so it is hopefully clear on what I am looking for
list1 contains (Test1, Test2, Test2, Test3, Test4)
list2 contains (Test1, Test2, Test5, Test6)</p>

<p>I would want my newlist to contain (Test2, Test3, Test4, Test5, Test6)</p>

<p>One more thing is that list1 and list2 are in no particular order and newlist does not need to be in any particular order either.</p>
