Error cannot convert from 'System.Collections.Generic.List<GameLibrary.Cards.Card>' to 'GameLibrary.Cards.Card'
<pre><code>   private List&lt;List&lt;Card&gt;&gt; GetCardMatchesInHand()
    {
        List&lt;Card&gt; list4;
        List&lt;List&lt;Card&gt;&gt; list = new List&lt;List&lt;Card&gt;&gt;();
        List&lt;GameLibrary.Cards.Card&gt; list2 = new List&lt;GameLibrary.Cards.Card&gt;()
        List&lt;Card&gt; list3 = new List&lt;Card&gt;();
        list4 = new List&lt;Card&gt; {
            list2,
            list3,
            list4
        };
        List&lt;Card&gt; list5 = this.Cards.ToList&lt;Card&gt;();
        using (List&lt;Card&gt;.Enumerator enumerator = this.Cards.GetEnumerator())
        {
            Predicate&lt;Card&gt; match = null;
            Predicate&lt;Card&gt; predicate2 = null;
            Predicate&lt;Card&gt; predicate3 = null;
            Predicate&lt;Card&gt; predicate4 = null;
            Predicate&lt;Card&gt; predicate5 = null;
            Card c;
            while (enumerator.MoveNext())
            {
                c = enumerator.Current;
                list5.Remove(c);
                if (match == null)
                {
                    match = element =&gt; element.CardValue == c.CardValue;
                }
                Card item = list5.Find(match);
                if (item != null)
                {
                    if (predicate2 == null)
                    {
                        predicate2 = element =&gt; element.CardValue == c.CardValue;
                    }
                    if (list2.Exists(predicate2))
                    {
                        if (predicate3 == null)
                        {
                            predicate3 = element =&gt; element.CardValue == c.CardValue;
                        }
                        item = list2.Find(predicate3);
                        list2.Remove(item);
                        list3.Add(c);
                    }
                    else
                    {
                        if (predicate4 == null)
                        {
                            predicate4 = element =&gt; element.CardValue == c.CardValue;
                        }
                        if (list3.Exists(predicate4))
                        {
                            if (predicate5 == null)
                            {
                                predicate5 = element =&gt; element.CardValue == c.CardValue;
                            }
                            item = list3.Find(predicate5);
                            list3.Remove(item);
                            list4.Add(c);
                        }
                        else
                        {
                            list2.Add(c);
                        }
                    }
                }
            }
        }
        return list;
    }
</code></pre>

<p>I'm getting said error on this line "list2, list3, list4". Now Why am I getting this error? This is the entire code posted now. 
Maybe now you can see what im trying to do.
Also using this to check for match in the list.</p>

<pre><code>    List&lt;List&lt;Card&gt;&gt; cardMatches = this.GetCardMatchesInHand();
</code></pre>
