C# では、配列は同じデータ型の要素を格納するコンテナーとして機能します。配列を作成する場合、要素を使用して配列を初期化する方法は複数あります。この記事では、C# で配列を初期化するさまざまな方法を詳しく掘り下げ、各アプローチを包括的に説明します。
C# で配列を初期化するメソッド
配列は、同じデータ型の要素のコレクションを連続したメモリ位置に保存および操作できるようにする、コンピューター プログラミングにおける重要なデータ構造です。 C# で配列を初期化するいくつかの方法を次に示します。
1: 配列初期化子構文を使用した配列の初期化
配列を初期化する最も簡単な方法は、配列初期化構文を利用することです。これには、配列要素をカンマで区切って中括弧で囲む必要があるためです。次に例を示します。
整数 [ 】 数字 = { 1 、 2 、 3 、 4 、 5 } ;
このコードでは、「numbers」という名前の整数配列が作成され、値 1 ~ 5 で初期化されます。同様に、同じ構文を使用して多次元配列を初期化できます。
整数 [ 、 】 myMultiDimensionalArray = { { 1 、 2 } 、 { 3 、 4 } 、 { 5 、 6 } } ;
以下は、初期化構文を使用して C# で 1D および 2D 配列を初期化するコード例です。
システムを使用する;
クラス配列
{
静的ボイドメイン ( 弦 [ 】 引数 )
{
// 初期化子構文を使用した 1D 配列の初期化
整数 [ 】 配列1D = { 1 、 2 、 3 、 4 、 5 } ;
Console.WriteLine ( 「array1D の値:」 ) ;
ために ( int i = 0 ;私 < 配列1D.長さ; i++ ) {
Console.WriteLine ( 配列1D [ 私 】 ) ;
}
// イニシャライザ構文を使用した 2D 配列の初期化
整数 [ 、 ] 配列2D = { { 1 、 2 } 、 { 3 、 4 } 、 { 5 、 6 } } ;
Console.WriteLine ( 「array2D の値:」 ) ;
ために ( int i = 0 ;私 < array2D.GetLength ( 0 ) ; i++ ) {
ために ( int j = 0 ; j < array2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( 「({0}, {1}): {2}」 、i、j、array2D [ 私、j ] ) ;
}
}
}
}
このコードでは、初期化構文を使用して、array1D という 1 次元の整数配列を値 1、2、3、4、および 5 で初期化しています。
また、初期化子構文を使用して、array2D という 2 次元の整数配列を値 {1, 2}、{3, 4}、および {5, 6} で初期化します。
次に、追加の for ループを使用して各配列の各要素を反復処理し、その値をコンソールに出力します。
2: 新しいキーワードを使用した配列の初期化
配列を初期化するための追加の方法には、 新しい キーワード。これには、角括弧で配列のサイズを指定し、その後に new キーワードを指定し、次に配列要素のデータ型を指定する必要があります。例えば:
整数 [ ] 数値 = 新しい整数 [ 5 ] ;
このコードは、number という名前のサイズ 5 の整数配列を作成し、すべての要素をデフォルト値 (整数配列の場合は 0) に初期化します。
C# で new キーワードを使用して多次元配列を初期化する構文は次のとおりです。
< タイプ > [ 、 】 < 配列名 > = 新しい < タイプ > [ < 長さ1 > 、 < 長さ2 > 、 ... 】 { { < 初期値 > } } ;
この構文では、
この構文を使用して 2 次元の整数配列を初期化する方法の例を次に示します。
整数 [ 、 】 myArray = 新しい整数 [ 3 、 2 】 { { 1 、 2 } 、 { 3 、 4 } 、 { 5 、 6 } } ;
この例では、new キーワードを使用して、myArray という 3 行 2 列の 2 次元整数配列を初期化しています。また、二重中括弧構文を使用して、配列の各要素の初期値を提供します。値は {1, 2}、{3, 4}、および {5, 6} で、各行の要素に対応します。
以下は、new キーワードを使用して C# で 1 次元配列と 2 次元配列の両方を初期化する方法と、各配列の値を出力するコードの例です。
システムを使用する;クラス配列
{
静的ボイドメイン ( 弦 [ 】 引数 )
{
// を初期化しています 1 -次元配列
整数 [ ] myArray1D = 新しい整数 [ ] { 1 、 2 、 3 、 4 、 5 } ;
Console.WriteLine ( 「myArray1D の値:」 ) ;
ために ( int i = 0 ;私 < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ 私 】 ) ;
}
// を初期化しています 2 -次元配列
整数 [ 、 】 myArray2D = 新しい int [ 、 】 { { 1 、 2 } 、 { 3 、 4 } 、 { 5 、 6 } } ;
Console.WriteLine ( 「myArray2D の値:」 ) ;
ために ( int i = 0 ;私 < myArray2D.GetLength ( 0 ) ; i++ )
{
ために ( int j = 0 ; j < myArray2D.GetLength ( 1 ) ; j++ )
{
Console.WriteLine ( 「({0}, {1}): {2}」 、i、j、myArray2D [ 私、j 】 ) ;
}
}
}
}
このコードでは、 new キーワードを使用して、 という 1 次元の整数配列を初期化しています。 myArray1D 値 1、2、3、4、および 5、および という 2 次元の整数配列を使用します。 myArray2D 値は {1, 2}、{3, 4}、および {5, 6} です。
次に、for ループを使用して各配列の各要素を反復処理し、その値をコンソールに出力します。 2 次元配列の場合、次を使用していることに注意してください。 GetLength() 行と列の数を決定し、ネストされた for ループを使用して各要素を反復処理します。
3: ループを使用した配列の初期化
配列はループを使用して初期化することもできます。 1 つのアプローチは、for ループを使用することです。これにより、配列を反復処理して各要素に値を割り当てることができます。
整数 [ 】 数値 = 新しい整数 [ 5 】 ;ために ( int i = 0 ;私 < 数値.長さ; i++ )
{
数字 [ 私 】 = i + 1 ;
}
このコードは、サイズ 5 の数値という名前の整数配列を作成し、各要素にインデックスに 1 を加えた値を割り当てます。ループを使用して C# で 2 次元の整数配列を初期化する方法の例を次に示します。
ために ( int i = 0 ;私 < 3 ; i++ )
{
ために ( int j = 0 ; j < 2 ; j++ )
{
myArray [ 私、j 】 = i + j;
}
}
この例では、ネストされた for ループを使用して、 という 2 次元の整数配列の各要素を反復処理しています。 myArray 、3 行 2 列があります。各要素について、式 i + j を使用して、その値をその行インデックスと列インデックスの合計に設定します。
以下は、ループを使用して C# で 1 次元配列と 2 次元配列の両方を初期化する方法と、各配列の値を出力するコードの例です。
システムを使用する;クラス配列
{
静的ボイドメイン ( 弦 [ 】 引数 )
{
// を初期化しています 1 -ループを使用した次元配列
整数 [ 】 myArray1D = 新しい整数 [ 5 】 ;
ために ( int i = 0 ;私 < myArray1D.Length; i++ )
{
myArray1D [ 私 】 = i + 1 ;
}
Console.WriteLine ( 「myArray1D の値:」 ) ;
ために ( int i = 0 ;私 < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ 私 】 ) ;
}
// を初期化しています 2 - ネストされたループを使用した次元配列
整数 [ 、 】 myArray2D = 新しい int [ 3 、 2 】 ;
ために ( int i = 0 ;私 < 3 ; i++ )
{
ために ( int j = 0 ; j < 2 ; j++ )
{
myArray2D [ 私、j 】 = i + j;
}
}
Console.WriteLine ( 「myArray2D の値:」 ) ;
ために ( int i = 0 ;私 < 3 ; i++ )
{
ために ( int j = 0 ; j < 2 ; j++ )
{
Console.WriteLine ( 「({0}, {1}): {2}」 、i、j、myArray2D [ 私、j 】 ) ;
}
}
}
}
このコードでは、for ループを使用して、myArray1D という 1 次元の整数配列を値 1、2、3、4、および 5 で初期化しています。また、ネストされた for ループを使用して、myArray1D という 2 次元の整数配列を初期化しています。式 i + j を使用して、値 {0, 1}、{1, 2}、および {2, 3} を持つ myArray2D。
次に、追加の for ループを使用して各配列の各要素を反復処理し、その値をコンソールに出力します。
4: Array.Copy() を使用した配列の初期化
配列を初期化する別のアプローチには、Array.Copy() 関数を利用する方法があります。これには、必要な要素を含むソース配列を作成し、それらをターゲット配列にコピーすることが含まれます。例えば:
整数 [ 】 ソース = { 1 、 2 、 3 、 4 、 5 } ;整数 [ 】 ターゲット = 新しい整数 [ ソース.長さ 】 ;
配列.コピー ( ソース 、ターゲット、ソース.長さ ) ;
このコードは、1 ~ 5 の値を持つsource という名前の整数配列を作成し、source と同じサイズの target という名前の新しい整数配列を作成して、要素をソースからターゲットにコピーします。
Array.Copy を使用して C# で 2 次元の整数配列を初期化する例を示します。
整数 [ 、 ] ソース配列 = { { 1 、 2 } 、 { 3 、 4 } 、 { 5 、 6 } } ;整数 [ 、 ] destinationArray = 新しい整数 [ 3 、 2 ] ;
配列.コピー ( sourceArray、destinationArray、sourceArray.Length ) ;
この例では、という 2 次元の整数配列があります。 ソース配列 3行2列です。私たちが使用しているのは Array.Copy() sourceArray の内容を、同じく 3 行 2 列を持つ destinationArray という新しい 2 次元整数配列にコピーします。
の Array.Copy() メソッドはかかります 3 つの引数 : の ソース配列 、 宛先配列 、 そしてその 長さ コピーするデータの。この場合、コンテンツ全体をコピーしています。 ソース配列 の中へ 宛先配列 、それでパスします ソース配列の長さ 3 番目の引数として。
使用できることに注意してください Array.Copy() ソース配列と宛先配列の次元数と各次元のサイズが同じである限り、任意の次元数で配列を初期化します。
また、次のことに留意してください。 Array.Copy() ソース配列の浅いコピーを実行します。つまり、ソース配列に参照型が含まれている場合、参照はコピーされますが、オブジェクト自体は複製されません。
これを使用する完全なコードは次のとおりです Array.Copy() C# で配列を初期化する関数:
システムを使用する;クラス配列
{
静的ボイドメイン ( 弦 [ 】 引数 )
{
// を初期化しています 1 -Array.Copy を使用した次元配列
整数 [ ] ソース配列1D = { 1 、 2 、 3 、 4 、 5 } ;
整数 [ ] destinationArray1D = 新しい整数 [ 5 ] ;
配列.コピー ( sourceArray1D、destinationArray1D、sourceArray1D.Length ) ;
Console.WriteLine ( 「destinationArray1D の値:」 ) ;
ために ( int i = 0 ;私 < destinationArray1D.Length; i++ ) {
Console.WriteLine ( 宛先配列 1D [ 私 ] ) ;
}
// を初期化しています 2 -Array.Copy を使用した次元配列
整数 [ 、 ] ソース配列2D = { { 1 、 2 } 、 { 3 、 4 } 、 { 5 、 6 } } ;
整数 [ 、 ] destinationArray2D = 新しい int [ 3 、 2 ] ;
配列.コピー ( sourceArray2D、destinationArray2D、sourceArray2D.Length ) ;
Console.WriteLine ( 「destinationArray2D の値:」 ) ;
ために ( int i = 0 ;私 < destinationArray2D.GetLength ( 0 ) ; i++ ) {
ために ( int j = 0 ; j < destinationArray2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( 「({0}, {1}): {2}」 、i、j、destinationArray2D [ 私、j ] ) ;
}
}
}
}
このコードでは、 Array.Copy() destinationArray1D という 1 次元の整数配列を、sourceArray1D というソース配列の値 1、2、3、4、および 5 で初期化します。
私たちも使っています Array.Copy() sourceArray2D というソース配列からの値 {1, 2}、{3, 4}、および {5, 6} を使用して、destinationArray2D という 2 次元整数配列を初期化します。
次に、追加の for ループを使用して各配列の各要素を反復処理し、その値をコンソールに出力します。
結論
この記事では、C# で配列を初期化するさまざまな方法を検討しました。 new キーワードの使用、ループを使用した配列の初期化、Array.Copy() メソッドの使用など、配列初期化子の構文について説明しました。特定の使用例に応じて、これらの各方法には独自の長所と短所があります。これらの多様なアプローチを理解すると、特定の要件に最も適したアプローチを選択できるようになります。