FindAll conditions with different relevance
<p>About the homework:
There are casters(witch(0)/fairy(1)) and they have spellpower(int). I stored them in a list.</p>

<p>I'm to find the best of both types. (There can be multiple casters with the same spellpower)
I've come up with this code, but there is a problem. If the caster with the most spellpower is a 1, then the first FindAll won't return anything, because it tries to find the caster with type 0 AND with the most spellpower. How can I get a list containing type 0 caster(s) with the most spellpower, if the caster with the most overall spellpower is type 1?</p>

<pre><code>private List&lt;Caster&gt; BestCasters()
    {
        List&lt;Caster&gt; temp = new List&lt;Caster&gt;();
        temp = casters.FindAll(x =&gt; x.SpellPower == casters.Max(y =&gt; y.SpellPower) &amp;&amp; (x.TypeOfCaster == 0));
        temp.AddRange(casters.FindAll(x =&gt; x.SpellPower == casters.Max(y =&gt; y.SpellPower) &amp;&amp; (x.TypeOfCaster == 1))); 
        temp.OrderBy(x =&gt; x.TypeOfCaster).ThenBy(y =&gt; y.CasterName);
        return temp;
    }
</code></pre>
