2011-04-04 9 views
30

मुझे नीचे दिए गए कोड की ToList() लाइन पर उपरोक्त त्रुटि मिल रही हैSystem.Array। "ToList" के लिए परिभाषा नहीं है

if (emailReplyTo != null) 
{ 
    System.Collections.Generic.List<String> replyto 
    = emailReplyTo 
    // Strip uneccessary spaces 
    .Replace(", ", ",") 
    .Split(',') 
    .ToList(); 

    request.WithReplyToAddresses(emailReplyTo); 
} 

मैंने अपनी फ़ाइल के शीर्ष पर using System.Collections; शामिल किया है। लक्ष्य ढांचा 3.5 है, तो यह एक त्रुटि क्यों पैदा कर रहा है?

+1

कोई एक ही समस्या हो रही है, तो 'Output' खिड़की पर एक गहरी नजर डालें। क्योंकि 'त्रुटि' विंडो कभी-कभी भ्रामक हो सकती है। – Reddy

उत्तर

87

ToList जिस विधि को आप ढूंढ रहे हैं वह एक विस्तार विधि है। आपकी फ़ाइल के शीर्ष करने के लिए इस using निर्देश जोड़ने का प्रयास करें:

using System.Linq; 

इस using निर्देश आप संकलक है कि उस नाम स्थान में कोई भी एक्सटेंशन तरीकों आयातित किया जाना चाहिए करने के लिए संकेत कर रहे हैं जोड़ कर। यह एक शर्म की बात है कि विस्तार विधियों को आयात करने के आसपास विजुअल स्टूडियो से और अधिक मदद नहीं है (ReSharper यह बल्कि अच्छी तरह से करता है)।

+0

अद्भुत, धन्यवाद! – fearoffours

+0

अच्छा। मैं थोड़ा आश्चर्यचकित हूं कि आप VisualStudio में बस इस पर राइट क्लिक नहीं कर सकते हैं और "हल करें ..." विकल्प ढूंढ सकते हैं। – micahhoover

6

यह केवल इसलिए है क्योंकि ArrayListToList नामक विधि का खुलासा नहीं करता है।

आपके लिए उपलब्ध सदस्यों के तालिका दृश्य के लिए this MSDN page देखें।

दूसरों के द्वारा समझाया, आप Linq पुस्तकालय आयात करके इस विस्तार विधि का उपयोग कर सकते हैं:

using System.Linq; 

इसके अलावा, इस तरह के एक कस्टम कार्यान्वयन के लिए see this link, तो आप एक को लागू करने की इच्छा चाहिए।

+0

आपका मतलब है 'ऐरे', 'अरेरेलिस्ट' नहीं ... –

+0

@ कोनराड रुडॉल्फ - ठीक है, अब मैं करता हूं। ;) शपथ ली थी कि मैंने शीर्षक में 'ऐरेलिस्ट' पढ़ा है, लेकिन कोई संपादन नहीं देख सकता है इसलिए मुझे गलत होना चाहिए। –

3

ऐसा इसलिए है क्योंकि संख्यात्मक एक्सटेंशन विधियां उपलब्ध नहीं हैं।

आप "System.Linq का उपयोग कर"

8

ToList() जोड़ने के लिए एक विस्तार विधि है की जरूरत है। शायद तुम

using System.Linq; 
8

भूल रहे हैं तुम भी .toList बिना ऐसा कर सकते हैं, कोई वास्तविक कारण के लिए एक पूरी लाइब्रेरी सहित बचाता है।

नई सूची (सरणी)

+0

यह एक बड़ी मदद थी! को न भूलें, हालांकि: नई सूची (सरणी); – Nate

5

मामले में किसी को googling के बाद इस सवाल पर ठोकर ...

मैं था उस्तरा में ठीक उसी समस्या देखता है और शीर्ष पर using System.Linq जोड़ने में मदद नहीं की ।

क्या मदद Linq विस्तार तरीकों का उपयोग कर से पहले .Cast() बुला रहा है क्या किया:

myArrayVariable.Cast<SomeClass>().ToList() //ok, NOW ToList works fine 
+0

डॉटनेट 4.5 सामान्य इकाई परीक्षण कोड में वही समस्या और समाधान। मैंने जांच नहीं की है क्यों। – LosManos

संबंधित मुद्दे