ArrayList類有個ToArray方法,用來將ArrayList的元素複製到新Object數組中,這裏有講究的地方!
使用 ArrayList類的ToArray方法時並未指定任何參數,則無參數的ToArray方法將會返回一個類型爲Object的數組,並且你不能夠將此 Object數組轉換成您所需的類型的數組。例如,假設您將一個Customer對象加入至一個ArrayList中,則其源列表將不會被製做成一個 Customer數組。這將使得如下的語句會執行失敗並返回一個System.InvalidCastException異常:
Customer[] custArray = (Customer[]) myArrayList.ToArray();
要想返回一個強類型數組,必須使用ToArray方法的另一個重載版本,也就是會接收一個對象類型做爲其參數的重載版本。比方說,若是將以前的轉換語句改寫以下,將可以成功執行:
Customer[] custArray = (Customer[]) myArrayList.ToArray(typeof(Customer));
可是請注意,上述的轉換必須在ArrayList的全部元素都是相同類型的時候纔會成功。若是您嘗試使用ToArray方法將一個含有不一樣類型對象的ArrayList轉換成特定的類型,將會失敗。數組