System.Collections.Generic.IEnumerable& # 39;不包含'ToList&

本文关键字:ToList 包含 Collections Generic IEnumerable System | 更新日期: 2023-09-27 18:07:37

问题在这里。我从ViewPage得到IEnumerable,当我尝试转换列表时,它显示了我的错误,如:

' System.Collections.Generic.IEnumerable<Pax_Detail> '不包含一个'ToList'的定义,没有扩展方法'ToList'接受类型的第一个参数可以找到' System.Collections.Generic.IEnumerable<Pax_Detail> '(您是否缺少using指令或汇编引用?)

这是我的控制器代码:

[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();
}

我在另一个控制器上应用了相同的逻辑。它工作得很好。我不知道它有什么问题。我已经清理,重建项目,并重新启动了我的笔记本电脑(虽然这是必要的)。

System.Collections.Generic.IEnumerable& # 39;不包含'ToList&

您是否缺少System.Linq的使用指令?

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

您缺少对System.Linq的引用。

添加
using System.Linq

来访问当前代码文件上的ToList()函数。


为了说明为什么这样做是必要的,Enumerable.ToList<TSource>是一个扩展方法。扩展方法在其目标的原始类之外定义。在本例中,扩展方法定义在System.Linq名称空间上。

添加LINQ的另一种选择是使用以下代码:

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

缺少System.Data.Entity dll引用,问题已解决

在我的例子中,我从另一个使用Automapper的项目中复制了一些代码——我花了很长时间才解决这个问题。只需要将automapper nuget包添加到项目中。