前回の関数をスマートにしてみましょう。
UnityよりC#のことですね。前回のコードはこちら
static Marking[] GetList(GameObject target, string searchMessage)
{
var resultList = new List<Marking>();
var tempList = target.GetComponentsInChildren<Marking>(true);
foreach (var tempMarking in tempList)
{
if (tempMarking.Message == searchMessage)
resultList.Add(tempMarking);
}
return resultList.ToArray();
}
ListにはFindAllというのがあるので、これを使ってシンプルにしてみましょう。
static Marking[] GetList(GameObject target, string searchMessage)こんな感じです。
{
var tempList = target.GetComponentsInChildren<Marking>(true);
return tempList.ToList().FindAll(item => item.Message == searchMessage).ToArray();
}
FindAllの()の中に、欲しいものを指定するだけです。
ここでは、Marking.MessageとsearchMessageが同じ値のものだけを取得していきます。
itemは、好きな名称に書き換えてもオッケーですよ。Listの中の<T>の要素になります。ここでは、Markingの要素になります。
()中の=>から後ろが条件を記述するところで、trueになっていたらその要素が追加されたList<T>が返されることになります。
0 件のコメント :
コメントを投稿