ホームページ  >  記事  >  バックエンド開発  >  C# 多次元配列

C# 多次元配列

WBOY
WBOYオリジナル
2024-09-03 15:12:21591ブラウズ

C# では、長方形配列または多次元配列は、行列形式の要素の構成を指します。多次元配列は 2 次元または 3 次元のみにすることができます。配列の次元は、変数内のデータの編成形式を指します。したがって、多次元配列を、行または列として直列またはシーケンスで構成された要素として定義できます。

構文:

以下は多次元配列の構文です:

2D 配列の宣言。

int[,] x=new int[1,2];

3D 配列の宣言。

int[,,] x=new int[1,2,3];

上記の構文は、2 次元および 3 次元の配列 (x) を宣言する形式を指定します。最初の配列には 2 つの要素 1 と 2 が含まれますが、3 次元配列には要素 1、2、3 が含まれます。

多次元配列の初期化

多次元配列は 3 つの異なる方法で初期化できます

1.宣言を完了

int[,] x = new int[6,6];

上記の仕様は、配列型、配列サイズ、new 演算子の使用を含め、2 次元配列を完全に初期化します。

2.新しい演算子

を使用しない初期化
int[,] x = { { 3,2,1 }, { 6,5,4 }, { 9,8,7 } };

3.サイズを宣言せずに配列を初期化する

int[,] x = new int[,]{ { 3,2,1 }, { 6,5,4 }, { 9,8,7 } };

C# 多次元配列の例

以下は C# の多次元配列の例です:

例 #1

多次元配列の宣言と初期化を説明するプログラム。以下の例は、C# での多次元配列の作成を示しています。

コード:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public static void Main(string[] args)
{
int[,] x = { { 3, 2, 1 }, { 6, 5, 4 }, { 9, 8, 7 } };
for (int a = 0; a < 3; a++)
{
for (int b = 0; b < 3; b++)
{
Console.Write(x[a, b] + " ");
}
Console.WriteLine();
}
}
}
}

出力:

C# 多次元配列

例 #2

2 次元配列の初期化、宣言、要素へのアクセスを説明するプログラム。

コード:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
/* declaring and initialising a two dimensional array*/
int[,] b = new int[6, 2] { { 1, 2 }, { 4, 3 }, { 5, 6 }, { 8,7 }, { 9 , 10 }, { 2, 3 } };
int i, j;
/* accessing each of the elements value for the array */
for (i = 0; i < 6; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine("a[{0},{1}] = {2}", i, j, b[i, j]);
}
}
Console.ReadKey();
}
}
}

出力:

C# 多次元配列

上記のプログラムは、多次元配列内の配列の要素にアクセスするための位置マーカーとしてインデックスを使用する方法を示しています。

例 #3

2 つの多次元配列を加算するプログラム。

コード:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public static void Main()
{
int[,] array1 = new int[3, 3];
int[,] array2 = new int[3, 3];
int[,] resultArray = new int[3, 3];
int i, j;
Console.WriteLine("specify the members of the first array: ");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
array1[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
Console.WriteLine("elements of the array1: ");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
Console.Write("{0} ", array1[i, j]);
}
Console.Write("\n");
}
Console.WriteLine("specify the members of the array2: ");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
array2[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
Console.WriteLine("elements of the array2: ");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
Console.Write("{0} ", array2[i, j]);
}
Console.Write("\n");
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
resultArray[i, j] = array1[i, j] + array2[i, j];
}
}
Console.WriteLine("resultArray of the array1 and array2 looks as below : ");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
Console.Write("{0} ", resultArray[i, j]);
}
Console.Write("\n");
}
}
}
}

出力:

C# 多次元配列

上記のプログラムを使用すると、最初の配列の各要素が 2 番目の配列のカウンター要素に追加され、配列の加算演算が完了しました。たとえば、array1 の最初の要素は 1 です。同様に、array2 の最初の要素は 9 です。加算の結果には、最初の要素が 10 である配列が含まれる必要があります。

長所と短所

以下は多次元配列の長所と短所です:

メリット

  • 多次元配列を使用すると、配列内のデータのサブグループを整理できます。多次元配列を使用して、データ メモリ アドレスをポインタ配列に格納することもできます。
  • プログラムでは、多次元配列は静的なサイズを持ち、最初に初期化されます。サイズを拡張するには、初期化中に関連するサイズを指定する必要があります。
  • 多次元配列を使用すると、行列演算を実行し、同じ変数割り当ての下で大きなデータ値を維持できます。
  • 多次元配列は、スタック、ヒープ、キュー、およびハッシュ テーブルを実装するために使用されます。

デメリット

  • 要素は配列の連続したメモリ位置に配置されます。したがって、要素の挿入と削除は、単一の要素に対する同様の操作よりも複雑になります。
  • また、要素を配列の途中に挿入することはできません。
  • 静的割り当てでは、必要以上に多くのメモリを割り当てると、無駄が発生したり、未使用のメモリの解放に失敗したりする可能性があります。これは悪影響を及ぼす可能性があります。
  • 多次元配列は、対応する単次元配列と比較すると低速になる可能性があり、これが大きな欠点です。これを克服するには、ギザギザの配列を多次元配列に置き換えます。

以上がC# 多次元配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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