Sorting IEnumerable<string> : <p>I've got an <code>IEnumerable&lt;string&gt;</code> with values like:</p>

<ul>
<li>pp</li>
<li>pp.10.0</li>
<li>pp.6.0</li>
<li>pp.6.1</li>
<li>pp.8.3</li>
<li>kp.10.1</li>
<li>kp</li>
<li>kp.3.20</li>
</ul>

<p>... etc</p>

<p>I'd like to organize them alphabetically, but keeping the values with double digits (in example above ones with 10.0 and 10.1) below the ones with single digits. In other words, after sorting it should look like this:</p>

<ul>
<li>kp</li>
<li>kp.3.20</li>
<li>kp.10.1</li>
<li>pp</li>
<li>pp.6.0</li>
<li>pp.6.1</li>
<li>pp.8.3</li>
<li>pp.10.0</li>
</ul>

<p>I tried a simple <code>IEnumerable&lt;string&gt;.OrderBy(x =&gt; x, StringComparer.CurrentCultureIgnoreCase)</code> but that doesn't quite work in this case.</p>

<p>Also bear in mind that the <code>pp</code> and <code>kp</code> parts <em>could</em> have dots in them as well, if you're thinking of splitting the string.</p>
