title: ToList method in Linq
body: <p>If I am not wrong, the ToList() method iterate on each element of provided collection and add them to new instance of  List  and return this instance.Suppose an example</p>
  
  <pre><code>//using linq
  list = Students.Where(s =&gt; s.Name == "ABC").ToList();
  
  //traditional way
  foreach (var student in Students)
  {
    if (student.Name == "ABC")
      list.Add(student);
  }
  </code></pre>
  
  <p>I think the traditional way is faster, as it loops only once, where as of above of Linq iterates twice once for Where method and then for ToList() method.</p>
  
  <p>The project I am working on now has extensive use of Lists all over and I see there is alot of such kind of use of ToList() and other Methods that can be made better like above if I take <strong>list</strong> variable as <strong>IEnumerable</strong> and remove .ToList() and use it further as IEnumerable.</p>
  
  <p>Do these things make any impact on performance?</p>