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.