2012-01-19 8 views
17

में ArrayList को स्ट्रिंग सरणी (स्ट्रिंग []) में परिवर्तित करने के लिए कैसे करें I ArrayList को string[] में C# में कैसे परिवर्तित कर सकता हूं?सी #

उत्तर

48
string[] myArray = (string[])myarrayList.ToArray(typeof(string)); 
+1

मैंने यह कोशिश की। मुझे इस पर निम्न त्रुटि मिल रही है "स्रोत सरणी में कम से कम एक तत्व गंतव्य सरणी प्रकार पर नहीं डाला जा सका" –

+0

मुझे पता है कि यह बहुत देर हो चुकी है, लेकिन कारण आपको यह त्रुटि मिल रही है ऐसा इसलिए है क्योंकि आपके पास शायद उन तत्वों के साथ एक ऐरेलिस्ट है जो तार नहीं कर रहे हैं, और आप तत्वों को स्ट्रिंग में डालने की कोशिश कर रहे हैं, जो कोई समझ नहीं लेता – Eames

1
using System.Linq; 

public static string[] Convert(this ArrayList items) 
{ 
    return items == null 
     ? null 
     : items.Cast<object>() 
      .Select(x => x == null ? null : x.ToString()) 
      .ToArray(); 
} 
+0

मैं है.लेकिन मैं निम्न त्रुटि त्रुटि \t 'System.Collections.ArrayList' 'चुनें' के लिए एक परिभाषा और कोई विस्तार विधि शामिल नहीं है हो रही है की कोशिश की 'चुनें' प्रकार के 'सिस्टम एक पहला तर्क को स्वीकार किया। संग्रह .अरेलेलिस्ट 'पाया जा सकता है (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?) –

+0

आपको फ़ाइल के शीर्ष पर' System.Linq; 'का उपयोग करने की आवश्यकता है। इसके अलावा मुझे 'कैस्ट ()' कॉल याद आ रही थी। – Nuffin

+0

कोई भी डाउनवोट की व्याख्या करने की देखभाल करता है? मेरा जवाब मुझे _that_ बुरा नहीं लग रहा है ... – Nuffin

1

उपयोग .ToArray(Type)

string[] stringArray = (string[])arrayList.ToArray(typeof(string)); 
+0

emm ... क्या मैंने डाउनवोट प्राप्त करने के लिए कुछ गलत लिखा है? :/ – Reniuz

2

प्रयास करें कि ToArray() विधि के साथ।

ArrayList a= new ArrayList(); //your ArrayList object 
var array=(String[])a.ToArray(typeof(string)); // your array!!! 
0

आप ArrayList ऑब्जेक्ट की CopyTo विधि का उपयोग कर सकते हैं।

मान लें कि हमारे पास एक सरणीसूची है, जिसमें स्ट्रिंग प्रकार तत्वों के रूप में है।

strArrayList.CopyTo(strArray) 
4

एक साधारण Google या एमएसडीएन पर खोज ने यह किया होगा। यहां:

ArrayList myAL = new ArrayList(); 

// Add stuff to the ArrayList. 
String[] myArr = (String[]) myAL.ToArray(typeof(string)); 
0

निम्नानुसार एक और तरीका है।

System.Collections.ArrayList al = new System.Collections.ArrayList(); 
al.Add("1"); 
al.Add("2"); 
al.Add("3"); 
string[] asArr = new string[al.Count]; 
al.CopyTo(asArr);