LoginSignup
1
1

More than 1 year has passed since last update.

Listについて

Last updated at Posted at 2021-06-02

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);
    }
}

image.png

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要素を抜き出します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1