System.Collections.Generic.IEnumerable 'не містить жодного визначення для' ToList '


80

Ось проблема. Я отримую IEnumerable з ViewPage, і коли я спробував перетворити список, він показує мені помилку, як:

' System.Collections.Generic.IEnumerable<Pax_Detail>' не містить визначення для 'ToList', і не System.Collections.Generic.IEnumerable<Pax_Detail>може бути знайдено жодного методу розширення 'ToList', що приймає перший аргумент типу ' ' (вам не вистачає директиви 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.Core.dll?
лінивець

7
як = new List<Pax_Detail>()pax.ToList()
допоміжну

Відповіді:


228

Вам не вистачає директиви використання для System.Linq?

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


О, дякую. Я не використовую Linq у своєму проекті, але я думаю, що це потрібно в цьому випадку.
Dhwani,

4
Я б рекомендував використовувати resharper. Це чудово виявляє подібні речі і запропонує вам додати директиву using.
Енді Ніколс,

26

Вам не вистачає посилання на System.Linq.

Додати

using System.Linq

отримати доступ до функції ToList () поточного кодового файлу.


Подавати трохи інформації про те, чому це необхідно, Enumerable.ToList<TSource>є методом розширення. Методи розширення визначені поза вихідним класом, на який він націлений. У цьому випадку метод розширення визначений у System.Linqпросторі імен.


7

Альтернативою додаванню LINQ було б використання цього коду:

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

Дуже корисно, якщо ви намагаєтесь зробити це у вікні негайного під час налагодження файлу, в якому відсутні директиви.
Ден Філд

Коли я спробую це, будь-яка зміна pax відображається і на paxList!
Мартін


0

У моєму випадку я скопіював якийсь код з іншого проекту, який використовував Automapper - мені потрібні роки, щоб його розробити. Просто довелося додати пакунок nupper automapper до проекту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.