create a sort and then retrieve first n method for a List<T> where T: IComparable <T>
<p>I want to write a generic method with the following signature :</p>

<pre><code>IList&lt;T&gt; Sort&lt;T&gt; (IList&lt;T&gt; list) where T: IComparable &lt;T&gt; 
</code></pre>

<p>that returns a sorted list. 
sorry for the incomplete original post.
so I want to sort the list and then select the first n elements
that would be</p>

<pre><code>        List&lt;T&gt; temp = new List&lt;T&gt;(list);
        temp.Sort();
        List&lt;T&gt; temp2 = new List&lt;T&gt;(temp);
        temp2.Take(count);
</code></pre>

<p>the complete question would be how to do that without double - copying the initial list.
there would be 2 cases :
the list has dupes and I want to retrieve the first n distinct values 
the list has dupes and I want to retrieve the first n values.
for the first case a distinct should be applied also - so a new "third "copy of list to be avoided.</p>

<p>of course the answer posted by guffa is accepted, because the OP at first was incomplete.          </p>
