2012-01-19 47 views

Trả lời

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

Tôi đã thử this.i am nhận được lỗi sau đây "Ít nhất một yếu tố trong mảng nguồn không thể được đúc xuống loại mảng đích" –

+0

Tôi biết điều này là rất muộn, nhưng lý do bạn nhận được lỗi đó là bởi vì bạn có thể có một ArrayList với các phần tử không phải là chuỗi quá, và bạn đang cố gắng để đưa các phần tử vào chuỗi, mà không có ý nghĩa gì – 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ôi đã cố gắng this.but tôi đang được nhận sau Lỗi lỗi \t 'System.Collections.ArrayList' không chứa một định nghĩa cho 'Chọn' và không có phương pháp mở rộng 'Chọn' chấp nhận một cuộc tranh luận đầu tiên của loại 'System. Collections.ArrayList 'có thể được tìm thấy (bạn đang thiếu một chỉ thị bằng cách sử dụng hoặc một tham chiếu lắp ráp?) –

+0

Bạn cần phải bao gồm 'using System.Linq;' ở đầu tệp. Ngoài ra tôi đã thiếu một cuộc gọi '.Cast ()'. – Nuffin

+0

Bất cứ ai quan tâm để giải thích các downvote? câu trả lời của tôi dường như không tệ với tôi ... – Nuffin

1

sử dụng .ToArray(Type)

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

emm ... tôi đã viết gì sai, để có được downvote? :/ – Reniuz

2

Hãy thử làm điều đó với ToArray() phương pháp.

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

Bạn có thể sử dụng phương thức CopyTo của đối tượng ArrayList.

Giả sử chúng ta có một danh sách mảng, có Kiểu chuỗi là Thành phần.

strArrayList.CopyTo(strArray) 
4

Google đơn giản hoặc tìm kiếm trên MSDN sẽ làm điều đó. Tại đây:

ArrayList myAL = new ArrayList(); 

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

Một cách khác là như sau.

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); 
Các vấn đề liên quan