FC2ブログ
10 «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.» 12

ハルシオンシステムの気まま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.blog.fc2.com/tb.php/615-59d5fffe
この記事にトラックバックする(FC2ブログユーザー)