欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

中如何對(duì)數(shù)組進(jìn)行深復(fù)制

中如何對(duì)數(shù)組進(jìn)行深復(fù)制?

C#中數(shù)組復(fù)制有多種方法

數(shù)組間的復(fù)制,int[] pins = {9,3,4,9};int [] alias = pins;這里出了錯(cuò)誤,也是錯(cuò)誤的根源,以上代碼并沒(méi)有出錯(cuò),但是根本不是復(fù)制,因?yàn)閜ins和alias都是引用,存在于堆棧中,而數(shù)據(jù)9,3,4,3是一個(gè)int對(duì)象存在于堆中,int [] alias = pins;只不過(guò)是創(chuàng)建另一個(gè)引用,alias和pins同時(shí)指向{9,3,4,3},當(dāng)修改其中一個(gè)引用的時(shí)候,勢(shì)必影響另一個(gè)。復(fù)制的意思是新建一個(gè)和被復(fù)制對(duì)象一樣的對(duì)象,在C#語(yǔ)言中應(yīng)該有如下4種方法來(lái)復(fù)制。

方法一:使用for循環(huán)

int []pins = {9,3,7,2}

int []copy = new int[pins.length];

for(int i =0;i!=copy.length;i++)

{

copy[i] = pins[i];

}

方法二:使用數(shù)組對(duì)象中的CopyTo()方法

int []pins = {9,3,7,2}

int []copy2 = new int[pins.length];

pins.CopyTo(copy2,0);

方法三:使用Array類(lèi)的一個(gè)靜態(tài)方法Copy()

int []pins = {9,3,7,2}

int []copy3 = new int[pins.length];

Array.Copy(pins,copy3,copy.Length);

方法四:使用Array類(lèi)中的一個(gè)實(shí)例方法Clone(),可以一次調(diào)用,最方便,但是Clone()方法返回的是一個(gè)對(duì)象,所以要強(qiáng)制轉(zhuǎn)換成恰當(dāng)?shù)念?lèi)類(lèi)型。

int []pins = {9,3,7,2}

int []copy4 = (int [])pins.Clone();

方法五:

string[] student1 = { "$", "$", "c", "m", "d", "1", "2", "3", "1", "2", "3" };

string[] student2 = { "0", "1", "2", "3", "4", "5", "6", "6", "1", "8", "16","10","45", "37", "82" };

ArrayList student = new ArrayList();

foreach (string s1 in student1)

{

student.Add(s1);

}

foreach (string s2 in student2)

{

student.Add(s2);

}

string[] copyAfter = (string[])student.ToArray(typeof(string));

兩個(gè)數(shù)組合并,最后把合并后的結(jié)果賦給copyAfter數(shù)組,這個(gè)例子可以靈活變通,很多地方可以用。

java合并數(shù)組元素,中如何對(duì)數(shù)組進(jìn)行深復(fù)制