System.Collections.Generic.IEnumerable 'के लिए कोई परिभाषा नहीं है'


80

यहाँ समस्या है। मुझे व्यूपेज से IEnumerable मिल रहा है और जब मैंने इसे सूची में बदलने की कोशिश की तो यह मुझे त्रुटि दिखा रहा है जैसे:

'' System.Collections.Generic.IEnumerable<Pax_Detail>'के लिए कोई परिभाषा नहीं है' ToList 'और कोई विस्तार विधि नहीं है' ToList 'को स्वीकार करने का पहला तर्क' System.Collections.Generic.IEnumerable<Pax_Detail>'पाया जा सकता है (क्या आप एक निर्देश या विधानसभा संदर्भ का उपयोग कर याद कर रहे हैं?)

यहाँ मेरा नियंत्रक कोड है:

[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 का उपयोग नहीं कर रहा हूं लेकिन मुझे लगता है कि इस मामले में इसकी आवश्यकता है।
धवन

4
मैं resharper का उपयोग करने की सलाह दूंगा। यह इस तरह की चीजों को देखने में शानदार है और आपको निर्देश का उपयोग करने के लिए प्रेरित करेगा।
एंडी निकोल्स

26

आपको System.Linq का संदर्भ याद आ रहा है।

जोड़ना

using System.Linq

वर्तमान कोड फ़ाइल पर ToList () फ़ंक्शन तक पहुंचने के लिए।


यह आवश्यक क्यों है, इस बारे में थोड़ी जानकारी देने के लिए, Enumerable.ToList<TSource>एक विस्तार विधि है। एक्सटेंशन विधियों को मूल वर्ग के बाहर परिभाषित किया गया है जो इसे लक्षित करता है। इस स्थिति में, विस्तार विधि System.Linqनामस्थान पर परिभाषित की गई है।


7

इसके बजाय LINQ जोड़ने का एक विकल्प इस कोड का उपयोग करना होगा:

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

सुपर सहायक यदि आप निर्देश को याद कर रही फ़ाइल को डीबग करते समय तत्काल विंडो में ऐसा करने का प्रयास कर रहे हैं।
डैन फील्ड

जब मैं कोशिश करता हूं कि पैक्स में कोई भी बदलाव पैक्सलिस्ट में भी परिलक्षित होता है!
मार्टिन


0

मेरे मामले में, मैंने एक अन्य परियोजना से कुछ कोड की नकल की थी जो ऑटोमैपर का उपयोग कर रहा था - मुझे काम करने में उम्र लग गई थी। बस को प्रोजेक्ट करने के लिए ऑटोमैटर नगेट पैकेज जोड़ना था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.