Arrayクラスとは
C#のArrayクラスは、固定サイズのデータコレクションを扱うための基本的なデータ構造です。配列は同じデータ型の要素を格納し、インデックスを使用してアクセスします。
特徴としては以下の様なものがあげられます。
・固定サイズ: 配列は作成時にサイズが決まり、その後変更できません。(変更したい場合はResizeメソッドを使用します)
・インデックスアクセス: 配列の各要素には0から始まるインデックスでアクセスします。
・多次元配列: 一次元配列だけでなく、二次元配列や三次元配列などもサポートしています。
メソッド類
Arrayクラスには以下の静的メソッドが用意されています。メソッドの引数のTは配列要素の型を示しています。
メソッド | 概要 |
BinarySeatch(T[] array,T v) | 整列済みの配列arrayから値vを検索する。(二分探索) |
Clear(Array a,int index,int len) |
配列aのindex番目からlen個の要素に既定値を設定する |
Copy(Array a,int indexA,Array b,int indexB,int len) |
配列aの指定範囲の要素を配列bにコピーする(引数indexAはコピー元の開始位置、indexBはコピー先の開始位置、lenはコピーする要素数) |
Resize(ref T[] a,int size) | 配列aのサイズをsizeに変更する |
Reverse(Array a) | 配列aの並び順を逆にする |
Sort(T[] array) |
配列arrayをソートする |
それぞれの使用方法は以下の通りです。
string[] sArray = new string[5];//初期値を設定する
sArray[0] = "dog";
sArray[1] = "cat";
sArray[2] = "mouse";
sArray[3] = "fox";
sArray[4] = "lion";
Console.WriteLine(String.Join("& ", sArray));///ソート前の配列を表示する
//結果:dog & cat & mouse & fox & lion
Array.Sort(sArray);//BinarySearchを呼び出す前には必ずソートする
Console.WriteLine(String.Join("& ", sArray));//ソート後の配列を表示する
//結果:cat & dog & fox & lion & mouse
Console.WriteLine(Array.BinarySearch(sArray, "mouse"));//結果:4
Array.Resize(ref sArray, sArray.Length + 3);
Console.WriteLine(String.Join("& ", sArray));//後ろに3つ要素が追加されている
//結果:cat & dog & fox & lion & mouse & &&
string[] sArray2 = { "dog", "cat", "mouse", "fox", "lion" };//このようにすることで初期化と初期値の代入を同時に行える
string[] sArray3 = new string[5];
Array.Copy(sArray2, 1, sArray3, 1, 3);
Console.WriteLine(String.Join("& ",sArray3));
//結果:& cat& mouse& fox&
まとめ
Arrayクラスは、固定サイズの同じ型のデータを格納するための基本的な構造です。
配列の要素にはインデックスを使ってアクセスし、長さを取得することもできます。
配列を操作するメソッドも様々に用意されており、ソートして二分探索を行う事も可能です。
コメント