Listについて


0.0 はじめに

同じ型のデータをまとめて取り扱うことが出来るList。
配列の場合は追加や削除に手間がかかりますが、Listの場合は動的に変更が可能です。C#にてよく使う機能をまとめてみました。
スクリプトに続けてコンソール画面の表示とそれぞれの簡単な説明があります。

Test.cs
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {
    List<string> list = new List<string>();
    List<string> anotherList = new List<string>();
    string elements = ""; // 要素表示用

    void Start() {


        // 1.0 要素の追加
        list.Add("東京");
        list.Add("名古屋");
        list.Add("大阪");
        list.Add("福岡");

        // list内の要素をすべてelementsに格納
        foreach (string str in list) {
            elements += str + ", ";
        }
        // コンソール画面にlist内の要素をすべて表示
        Debug.Log("1.0 要素の追加後ーー> " + elements);
        elements = ""; // 初期化



        // 2.1 要素名で削除
        list.Remove("大阪");

        // list内の要素をすべてelementsに格納
        foreach (string str in list) {
            elements += str + ", ";
        }
        // コンソール画面にlist内の要素をすべて表示
        Debug.Log("2.1 要素名で削除後ーー> " + elements);
        elements = ""; // 初期化



        // インデックス番号で削除
        list.RemoveAt(1);

        // list内の要素をすべてelementsに格納
        foreach (string str in list) {
            elements += str + ", ";
        }
        // 2.2 コンソール画面にlist内の要素をすべて表示
        Debug.Log("2.2 インデックス番号で削除後ーー> " + elements);
        elements = ""; // 初期化



        // 2.3 すべての要素を削除
        list.Clear();

        // コンソール画面にlist内の要素の数を表示
        Debug.Log("2.3 すべて削除後の要素数ーー> " + list.Count);



        // 要素追加
        list.Add("りんご");
        list.Add("みかん");
        list.Add("ばなな");
        list.Add("もも");


        // 3.0 要素の並べ替え
        list.Sort();

        // list内の要素をすべてelementsに格納
        foreach (string str in list) {
            elements += str + ", ";
        }
        // コンソール画面にlist内の要素をすべて表示
        Debug.Log("3.0 要素の並べ替え後ーー> " + elements);
        elements = ""; // 初期化



        // 4.1 インデックス番号を取得する
        Debug.Log("4.1 インデックス番号取得(りんご)ーー> " + list.IndexOf("りんご"));



        // 4.2 値が含まれているかを判定
        Debug.Log("4.2 値が含まれているか(もも)ーー> " + list.Contains("もも"));
        Debug.Log("4.2 値が含まれているか(なし)ーー> " + list.Contains("なし"));



        // 5.0 値を入れての初期化
        list = new List<string>() {"算数", "国語", "理科" };

        // list内の要素をすべてelementsに格納
        foreach (string str in list) {
            elements += str + ", ";
        }
        // コンソール画面にlist内の要素をすべて表示
        Debug.Log("5.0 値を入れての初期化後ーー> " + elements);

        // 6.0 複数の要素を一度にまとめて追加したい場合
        elements = "";
        anotherList.AddRange(list);
        anotherList.AddRange(list); // 2回入れている
        foreach (string str in anotherList) {
            elements += str + ", ";
        }
        Debug.Log("6.0 複数の要素を一度にまとめて追加の後ーー> " + elements);
    }
}

1.0 要素の追加

list.Add()
引数に追加したい要素を入れます。

2.0 要素の削除

削除の方法はいくつかあります。

2.1 要素名を指定しての削除

list.Remove()
引数に削除したい要素名を入れます。

2.2 インデックスを指定しての削除

list.RemoveAt()
引数に削除したいインデックス番号(int)を入れます。

2.3 すべての要素の削除

list.Clear()
要素数は0になります。

👍ポイント!!
list.Countで要素数を調べることができます。

3.0 要素の並べ替え ソート

list.Sort()
Listの要素を昇順に並び替えます。

4.0 要素検索

4.1 インデックス番号を取得する

list.IndexOf()
引数は検索したい要素名。
返り値で検索した要素のインデックスを取得する。

4.2 値が含まれているかを判定する

list.Contains()
引数は検索したい要素名。
値が含まれているかを判定する方法、返り値はTrue/False

5.0 値を入れての初期化

後ろに{}を付けてそのなかに値を入れます。
List test = new List() { "値1", "値2", "値3" };

👍ポイント!!
()省略可

6.0 複数の要素を一度にまとめて追加したい場合

list.AddRange(array);
array部にはListでも配列でも取り扱い可能です。

7.0 要素の一部をListとして取り出す方法

list.GetRange(int index, int count)を使用します。

第一引数は切り取り部分のスタートとなるindex番号

第二引数は切り取りたい個数

👍ポイント!!
引数(2,3)の場合は要素番号2から要素番号4までの3要素を抜き出します。