Type int? vs type int : <p>I've this comparison which equals <code>false</code> as expected</p>

<pre><code>bool eq = typeof(int?).Equals(typeof(int));
</code></pre>

<p>now I have this code</p>

<pre><code>List&lt;object&gt; items = new List&lt;object&gt;() { (int?)123 };
int result = items.OfType&lt;int&gt;().FirstOrDefault();
</code></pre>

<p>but this returns <code>123</code> - anyway that value is of type <code>int?</code></p>

<p>How can this be?</p>
