2014-09-04 62 views

回答

2

Array.Copy如果目標陣列中沒有足夠的空間,將會失敗。在這種情況下將不會複製任何內容。如果你認爲不然,你一定是在誤解某些東西。

無論如何你必須自己進行計算。

0

它會複製你告訴它的元素。 Array.Copy()需要一個參數指定要複製的元素數量。

您可以使用每個陣列的Length屬性來檢查大小。

0

根據文檔,Array.Copy的每個過載都有length參數,因此您知道事先將複製多少個元素。

例如,如果我們把它叫做是這樣的:

Array.Copy(sourceArray, destinationArray, length); 

那麼作爲文檔說:「如果length比元素的sourceArraylength數量越比元素的destinationArray的數量越多將拋出「ArgumentException」。

1

如果我理解正確,你想複製一個數組到一個新的,然後看有多少項目被複制? 這是徒勞的。 Array.Copy()將複製每個項目,或根本沒有項目。如果您的目標數組比您的源數組小,您將得到一個ArgumentException。 MSDN告訴您以下內容:

sourceArray和destinationArray參數必須具有相同的維數。另外,destinationArray必須已經被標註尺寸,並且必須有足夠數量的元素來容納複製的數據。

或者,如果您使用Array.Copy Method (Array, Int64, Array, Int64, Int64)過載,你需要有你的目標數組中有足夠的空間來容納源陣列:

的sourceArray和destinationArray參數必須具有相同的維數。另外,destinationArray必須已經進行了標註,並且必須具有足夠數量的從destinationIndex位置開始的元素以容納複製的數據。

無論哪種方式,沒有辦法,只有項目的一部分被複制,至少不會與Array.Copy