web-dev-qa-db-fra.com

System.Collections.Generic.IEnumerable 'ne contient pas de définition pour' ToList '

Voici le problème. Je reçois IEnumerable de ViewPage et lorsque je l'ai essayé pour convertir la liste, il affiche une erreur comme:

'System.Collections.Generic.IEnumerable<Pax_Detail> 'ne contient pas de définition pour' ToList 'et aucune méthode d'extension' ToList 'n'accepte un premier argument de type' System.Collections.Generic.IEnumerable<Pax_Detail> 'pourrait être trouvé (il vous manque une directive using ou une référence Assembly?)

Voici mon code de contrôleur:

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

J'ai appliqué la même logique sur un autre contrôleur. Et ça marche bien. Je ne sais pas quel problème il a. J'ai déjà nettoyé, reconstruit le projet et j'ai également redémarré mon ordinateur portable (même s'il était nécessaire).

67
Dhwani

Vous manque-t-il une directive using pour System.Linq?

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

192
Anthony Sottile

Il vous manque une référence à System.Linq.

Ajouter

using System.Linq

pour accéder à la fonction ToList () sur le fichier de code actuel.


Pour donner un peu d'informations sur la raison pour laquelle cela est nécessaire, Enumerable.ToList<TSource> est une méthode d'extension. Les méthodes d'extension sont définies en dehors de la classe d'origine ciblée. Dans ce cas, la méthode d'extension est définie sur System.Linq espace de noms.

21
Adrian Godong

Une alternative à l’ajout de LINQ serait d’utiliser ce code à la place:

List<Pax_Detail> paxList = new List<Pax_Detail>(pax);
7
Daniel Hilgarth

Il me manquait référence de System.Data.Entity dll et le problème a été résolu

3
Denis Besic

Dans mon cas, j'avais copié du code d'un autre projet qui utilisait Automapper - cela m'a pris énormément de travail. Il suffisait d’ajouter le paquet automapper nuget au projet.

0
Myke Black