System.Collections.Generic.IEnumerable' does not contain any definition for 'ToList'

Here is the problem. I am getting IEnumerable from ViewPage and when I tried it to convert List it is showing me error like:

'System.Collections.Generic.IEnumerable<Pax_Detail>' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'System.Collections.Generic.IEnumerable<Pax_Detail>' could be found (are you missing a using directive or an assembly reference?)

Here is my controller code:

[HttpPost]
public ActionResult Edit_Booking(Booking model, IEnumerable<Pax_Detail> pax)
{
  List<Pax_Detail> paxList = new List<Pax_Detail>();
  paxList = pax.ToList(); //getting error here
  BookingDL.Update_Booking(model, paxList);
  return View();
}

I have applied same logic on another controller. And it is working fine. I don't know what problem it has. I have already clean, rebuild project and also restarted my laptop(though it was needed).


Are you missing a using directive for System.Linq?

http://msdn.microsoft.com/en-us/library/bb342261.aspx


You're missing a reference to System.Linq.

Add

using System.Linq

to get access to the ToList() function on the current code file.


To give a little bit of information over why this is necessary, Enumerable.ToList<TSource> is an extension method. Extension methods are defined outside the original class that it targets. In this case, the extension method is defined on System.Linq namespace.


An alternative to adding LINQ would be to use this code instead:

List<Pax_Detail> paxList = new List<Pax_Detail>(pax);

I was missing System.Data.Entity dll reference and problem was solved