Listとは


  1. Listは配列に近いが追加と削除ができるのが特徴。
  2. 配列は要素の数が決まっている「不変」でListは決まっていない「可変」。
  3. 配列は決められた型だけ入れられるが、Listはどんな型でも入る。
  4. 取得方法は配列と同じ。

書き方と取得


宣言・代入・初期化


{値}を省略して後から追加してもよい。
// List<型> 変数 = new List<型>() {値,値,値};
List<int> numbers = new List<int>() {-1,21,23};
Debug.Log(numbers[0]);
Debug.Log(numbers[1]);
Debug.Log(numbers[2]);

代入方法


既存の変数を上書きできる。
List<int> numbers = new List<int>() {-1,21,23};
numbers[1] = 0;
Debug.Log(numbers[1]);
// [1]の21が0に上書きされる
// 出力結果 0

追加


リストの最後尾に変数を追加できる。
List<int> numbers = new List<int>() {-1,21,23};
// 変数.Add(値);
numbers.Add(100);
Debug.Log(numbers[3]);
// 出力結果 100

長さの取得


LengthではなくCountを使う。
List<int> numbers = new List<int>() {-1,21,23};
// 変数.Count
Debug.Log(numbers.Count);
// 出力結果 4

削除


リストから要素を削除する方法は二通り。
削除したアドレスは欠番にはならず、繰り上がるので注意。

パターン1 : 要素のアドレスを指定して削除
List<int> numbers = new List<int>() {-1,21,23};
// 変数.RemoveAt(アドレス);
numbers.RemoveAt(1);
Debug.Log(numbers.Count);
// 出力結果 3
// リストから要素が1つ削除されたので要素数が減った

パターン2 : 要素の値を指定して削除
List<int> numbers = new List<int>() {-1,21,23};
// 変数.Remove(要素の値);
numbers.Remove(-1);
Debug.Log(numbers[0]);
// 出力結果 21
// [0]の-1が削除され[1]の21が[0に]繰り上がった

Listの便利な使い方


for文との連携


LengthではなくCountを使って要素を全て書き出す。
for(int i=0; i<numbers.Count; i++)
{
	Debug.Log(numbers[i]);
}

ループ処理でListを作る


例文) 0-9までの要素数のリストを作る。
要素を入れない空のリストを作ってループ処理で追加。
List<int> numberList = new List<int>();
for(int i=0; i<10; i++)
{
    numberList.Add(i);
}
for(int i=0; i<numberList.Count; i++)
{
    Debug.Log(numberList[i]);
}