一种是delegate写法,另一种是lambda
第二种更简洁,两种效果一样
List<GameObject> targetList = new List<GameObject>();
Debug.Log(targetList.Find(delegate (GameObject target) { return target.name.Equals("test"); }));
Debug.Log(targetList.Find(target => target.name.Equals("test")));
另附上直接搜索所有指定类物体的写法
void getTargetList(string tag, out List<Damageable> targetlist)
{
targetlist = ((Damageable[])FindObjectsOfType(typeof(Damageable))).ToList();
List<Damageable> targetRemove = targetlist.FindAll(t => t.tag.Equals("Player"));
for (int i = 0; i < targetRemove.Count; i++)
{
Debug.Log("清除目标:" + tag + "|" + targetRemove[i].name);
}
}

本文介绍了C#中使用Lambda表达式与Delegate方法的区别及应用实例,包括查找GameObject对象和搜索特定类的所有实例。
11万+

被折叠的 条评论
为什么被折叠?



