Dhwani
Dhwani

Reputation: 7626

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).

Upvotes: 115

Views: 177126

Answers (5)

anthony sottile
anthony sottile

Reputation: 70223

Are you missing a using directive for System.Linq?

https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.tolist

Upvotes: 283

Myke Black
Myke Black

Reputation: 1339

In my case, I had copied some code from another project that was using Automapper - took me ages to work that one out. Just had to add automapper nuget package to project.

Upvotes: 0

Denis Besic
Denis Besic

Reputation: 3147

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

Upvotes: 4

Daniel Hilgarth
Daniel Hilgarth

Reputation: 174457

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

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

Upvotes: 10

Adrian Godong
Adrian Godong

Reputation: 8921

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.

Upvotes: 39

Related Questions