FC2ブログ
    05 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】ListでほしいものをFindするときに、まとめてとる方法や、Findの複数条件が使えることについて 

    こんにちは!坂内っす。

    UnityでList使ってますか?

    List<クラス>

    で、指定クラスのオブジェクトがいっぱい入るリスト作れますよね。

    よく使ってます。

    例えばこんなクラスがあるとします。

    【AAA.cs】

    public class AAA
    {
    public int aaaNo;
    public int aaaType;
    public string aaaName;
    }


    で、こんな感じで3個のAAAオブジェクトがListに入れます。


    using System.Collections.Generic;
    using UnityEngine;

    public class Scripts20190708 : MonoBehaviour
    {
    List aaaAry = new List();
    void Start()
    {
    AAA a0 = new AAA();
    a0.aaaNo = 0;
    a0.aaaType = 0;
    a0.aaaName = "あいうえお";
    aaaAry.Add(a0);

    AAA a1 = new AAA();
    a1.aaaNo = 1;
    a1.aaaType = 0;
    a1.aaaName = "かきくけこ";
    aaaAry.Add(a1);

    AAA a2 = new AAA();
    a2.aaaNo = 2;
    a2.aaaType = 1;
    a2.aaaName = "さしすせそ";
    aaaAry.Add(a2);
    }
    }


    以前の記事で、Findを使って1つのオブジェクトを取り出すっていうのはやっています。


    例えば「aaa.Noが2のモノを取り出す」って場合はこんな感じ


    AAA no2Object = aaaAry.Find(x => x.aaaNo == 2);


    これで、a1として入れたものが取り出せます。

    では「aaaTypeが0のモノをすべて」取り出すにはどうすればいいでしょうか?


    List allType0Obj = aaaAry.FindAll(x => x.aaaType == 0);


    こんな感じで複数のモノも取れます。

    また、複数の検索条件ももちろん使うことができます。


    AAA no2Type1Obj = aaaAry.Find(x => x.aaaNo == 2 && x.aaaType == 1);


    これであなたもFindマスター(だったらいいよね)


    ってことで、是非ListとFindをご使用ください。多様していいのか分かりませんが!

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/615-59d5fffe
    この記事にトラックバックする(FC2ブログユーザー)