リストと辞書

Tutorial

intermediate

+0XP

5 mins

(11)

Unity Technologies

リストと辞書

リストコレクションと辞書コレクションを作成して使用する方法を学びます。

Languages available:

1. リストと辞書

BadGuy クラスのコード

using UnityEngine;
using System.Collections;
using System; // この行を記述することで、IComparable インターフェイスが可能になります
 
// これはさまざまなコレクションに格納するクラスです。
// コレクションの Sort() メソッドを使用するために、
// このクラスは IComparable インターフェイスを実装する必要があります。
public class BadGuy : IComparable<BadGuy>
{
    public string name;
    public int power;

    public BadGuy(string newName, int newPower)
    {
        name = newName;
        power = newPower;
    }

    // このメソッドは、IComparable で実装が必須になっています。
    public int CompareTo(BadGuy other)
    {
        if(other == null)
        {
            return 1;
        }

        // power の差を返します。
        return power - other.power;
    }
}


SomeClass クラスのコード

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SomeClass : MonoBehaviour
{
    void Start () 
    {
        // ここのコードはリストの作成方法を示しています。
        // 型名が山かっこ(<>)を付けてどのように指定されているかに注意してください。
        List<BadGuy> badguys = new List<BadGuy>();

        // ここでは、3 つの BadGuy クラスのオブジェクトをリストに追加します
        badguys.Add( new BadGuy("Harvey", 50));
        badguys.Add( new BadGuy("Magneto", 100));
        badguys.Add( new BadGuy("Pip", 5));

        badguys.Sort();

        foreach(BadGuy guy in badguys)
        {
            print (guy.name + " " + guy.power);
        }

        // この行を実行することでリストがクリアされ、空になります。
        badguys.Clear();
    }
}

SomeOtherClass クラスのコード

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SomeOtherClass : MonoBehaviour 
{
    void Start ()
    {
        // ここのコードは辞書の作成方法を示しています。
        // 2 つのジェネリック型指定を取ることに注目してください。
        // ここでは、string と BadGuy を指定しています。
        Dictionary<string, BadGuy> badguys = new Dictionary<string, BadGuy>();

        BadGuy bg1 = new BadGuy("Harvey", 50);
        BadGuy bg2 = new BadGuy("Magneto", 100);

        // Add() メソッドを使用して、辞書に変数を格納できます。
        badguys.Add("gangster", bg1);
        badguys.Add("mutant", bg2);

        BadGuy magneto = badguys["mutant"];

        BadGuy temp = null;

        // これは、辞書に格納された値にアクセスするための、より安全ながら遅い方法です。
        if(badguys.TryGetValue("birds", out temp))
        {
            // 成功
        }
        else
        {
            // 失敗
        }
    }
}

Complete this Tutorial