2013-04-04 74 views
51

这是问题所在。我自ViewPage越来越IEnumerable和当我试图转换列表它显示了我的错误,如:System.Collections.Generic.IEnumerable'不包含'ToList'的任何定义

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

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

+0

你引用'System.Core.dll '? – sloth 2013-04-04 13:40:00

+6

作为一个侧面说明,避免'=新名单()'与'pax.ToList()'下一行覆盖它时,因为未使用的内存分配这样 – pascalhein 2013-04-04 13:41:16

回答

151

是否缺少using指令System.Linq

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

+0

哦,谢谢。我没有在我的项目中使用Linq,但我认为这是需要的。 – Dhwani 2013-04-04 13:41:34

+3

我会推荐使用resharper。发现这样的事情很棒,并会提示你添加using指令。 – 2013-04-04 13:43:50

+0

@AndyNichols也会这么说。一个惊人的工具来解决这个问题。 – 2013-04-04 13:44:44

19

你缺少System.Linq的参考。

添加

using System.Linq 

获得访问ToList()函数在当前的代码文件。


为了让信息在为什么这是必要的一点点,Enumerable.ToList<TSource>是一个扩展方法。扩展方法在其目标的原始类之外定义。在这种情况下,扩展方法在System.Linq名称空间上定义。

6

以增加LINQ另一种方法是使用此代码来代替:

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

如果您在调试缺少指令的文件时试图在即时窗口中执行此操作,那么该功能非常有用。 – 2016-05-11 18:55:09

3

我失踪System.Data.Entity的dll引用和问题得到解决

相关问题