2013-04-04 72 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引用和問題得到解決

相關問題