2012-01-19 68 views

回答

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

我試過this.i我得到以下錯誤「源陣列中至少有一個元素不能被丟棄到目標數組類型」 –

+0

我知道這是非常晚,但你得到該錯誤的原因是因爲你可能有一個ArrayList中的元素不是字符串,並且你試圖將元素轉換爲字符串,這沒有任何意義 – 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

我試圖this.but我收到以下錯誤錯誤\t「System.Collections.ArrayList」不包含「選擇」的定義,並沒有擴展方法「選擇」接受型體系的」第一個參數。可以找到Collections.ArrayList'(你是否缺少using指令或程序集引用?) –

+0

你需要在文件的頂部包含'using System.Linq;'。我還錯過了一個'.Cast ()'電話。 – Nuffin

+0

任何關心解釋downvote?我的回答對我來說似乎並不壞... – Nuffin

1

使用.ToArray(Type)

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

emm ...我寫錯了什麼,得到downvote? :/ – 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或MSDN上的搜索就可以做到。這裏:

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); 
相關問題