2011-04-29 20 views
38

मैं सी # में Array.Contains() विधि का उपयोग करने की कोशिश कर रहा हूं, और किसी कारण से यह संकलन करने में विफल रहा है, हालांकि मुझे विश्वास है कि मैं सी # 4.0, और सी # 3.0 और बाद में इसका समर्थन करना चाहिए।सी # Array.Contains() संकलन त्रुटि

Main.cs(42,15): error CS1061: 'System.Array' does not contain a definition for 'Contains' and no extension method 'Contains' accepting a first argument of type 'System.Array' could be found (are you missing a using directive or an assembly reference?)

मैं कमांड लाइन से संकलन कर रहा हूँ, कोई विकल्प के साथ: "सीएससी main.exe"

if (! args.Contains ("-m")) 
    Console.WriteLine ("You must provide a message for this commit."); 

और मैं इस त्रुटि मिलती है।

+1

मुझे आश्चर्य है कि लिंक का उपयोग कैसे किया जा रहा है ... – Blindy

+4

मुझे नीचे वोट नहीं मिलता है और करीब ईथ एर। एक बिल्कुल उचित सवाल की तरह लगता है। –

+9

त्रुटि संदेश पढ़ें। यह आपको बता रहा है कि क्या गलत है। ** आप या तो एक असेंबली संदर्भ या एक निर्देश का उपयोग कर रहे हैं **। –

उत्तर

72

आपको अपने कार्यक्रम की शुरुआत में using System.Linq; जोड़ने की आवश्यकता है।

12

क्या आप using System.Linq भूल गए थे?

वैसे, यदि आप LINQ का उपयोग नहीं कर सकते हैं तो Array.Exists जैसे कई अन्य विकल्प हैं।

+2

या 'Array.Contains', जो वही काम करता है जैसा वह चाहता है। लेकिन वह स्पष्ट रूप से सी # 3.5 का उपयोग कर रहा है, इसलिए कोई कारण नहीं कि वह लिंक का उपयोग नहीं कर सका। – Blindy

9

यदि आप न 'LINQ इस्तेमाल करने की कोशिश

((IList<string>)args).Contains("-m") 
0

सुनिश्चित करें कि आप सीएससी का सही संस्करण उपयोग कर रहे हैं चाहते हैं (CSC /?) - आप 4.0 के लिए संकलन 2010 संस्करण की आवश्यकता है। सफल होने के लिए संकलित करने के लिए आपको अतिरिक्त पुस्तकालय (/ r विकल्प) भी जोड़ना पड़ सकता है।

2

मैं एक ही मुद्दा था हो जाता है और मैं था

using System.Linq 

यह था, क्योंकि मैं करने की कोशिश कर रहा था int करने के लिए स्ट्रिंग की तुलना, लेकिन किसी भी तरह यह कह रहा था

'System.Array' does not contain a definition for 'Contains'

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