title: Replacing IEnumerable with List
body: <p>I have a basic doubt but I am not able to figure out myself.
  I have a piece of code as follows:</p>
  
  <pre><code>List&lt;string&gt; List = new List&lt;string&gt;();
              List.Add("A");
              List.Add("B");
              List.Add("sam);
              List.Add("Sed");
  
  IEnumerable&lt;string&gt; names = from n in List where (n.StartsWith("S")) select n;
  </code></pre>
  
  <p>Why does the above code asks for a explicit conversion if IEnumerable is replaced with concrete implementation i.e., List.</p>
  
  <p>i.e., if I use :</p>
  
  <pre><code>List&lt;string&gt; names = from n in List where (n.StartsWith("S")) select n;
  </code></pre>
  
  <p>has a compiler error. </p>
  
  <p>I could blindly use Ienumerable , but I want learn what is happening when I use List?</p>