C#での配列の代入方法

高洛峰
高洛峰オリジナル
2016-12-16 14:50:012183ブラウズ

C# で配列をコピーする方法はたくさんあります

配列間でコピーする、int[] pins = {9,3,4,9};int [] alias = pins; ここにエラーがあり、これがソースでもあります。上記のコードはエラーはありませんが、ピンとエイリアスは参照でありスタック上に存在し、データ 9,3,4,3 は int オブジェクトであるため、まったくコピーではありません。 heap, int [] alias = pins; は、別の参照を作成することに他なりません。エイリアスとピンは同時に {9, 3, 4, 3} を指します。一方の参照が変更されると、必然的にもう一方の参照にも影響します。コピーとは、コピーしたオブジェクトと同じオブジェクトを新たに作成することを指します。C#言語でコピーするには以下の4つの方法があります。

方法 1: for ループを使用する

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

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

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

{

copy[i] = pins[i];

}

方法 2: 配列オブジェクトで CopyTo() メソッドを使用します

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

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

pins.CopyTo(copy2,0);

方法 3: の静的メンバーを使用します。 Array クラス Method Copy()

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

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

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

方法 4: Array クラスのインスタンス メソッド Clone() を使用します。これは一度呼び出すことができ、最も便利です。ただし、Clone() メソッドはオブジェクトを返すため、適切なクラスタイプに強制的に設定する必要があります。

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

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

方法 5:

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 (student1 の文字列 s1)

{

student.Add(s1);

foreach (student2の文字列s2)

{

student.Add(s2);

}

string[]コピー後 = (string[])student.ToArray(typeof(string));

2 つの配列をマージし、最後にマージした結果を copyAfter 配列に割り当てます。この例は柔軟で、さまざまな場所で使用できます

C# での配列割り当てメソッドに関連するその他の記事については、PHP 中国語に注目してください。 Webサイト!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。