无意间看到这样一个用法,和 foreach 结合在一起使用。简化了使用 if 语句
foreach (Father var_fa in fa_list)//遍历每个 fa_list 表 { var_id = fa_list.Find(x => x.name == var_str).id; //找到 Father 类型 的x 的 name 变量 == 和 索引字符串var_str 相等 的Father 类型变量 //显示该 变量 的ID }
上面的这一句话等同于下面的这句IF 语句
foreach (Father var_fa in fa_list)//遍历每个 fa_list 表 { if(var_fa.name == var_str)
{
var_id = var_fa.id;
}
}
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Son : MonoBehaviour { private void Start() { List<Father> fa_list = new List<Father>();//建立 一个 Father 类型 的List 表 fa_list.Add(new Father("a1",11));//向 fa_list 中添加 Father 的数据 fa_list.Add(new Father("a2", 22)); fa_list.Add(new Father("a3", 33)); int var_id = -1 ;// string var_str = "a2";//索引 字符串 foreach (Father var_fa in fa_list)//遍历每个 fa_list 表 { var_id = fa_list.Find(x => x.name == var_str).id; //找到 Father 类型 的x 的 name 变量 == 和 索引字符串var_str 相等 的Father 类型变量 //显示该 变量 的ID } Debug.Log(" "+ var_str+" " + var_id); } }
显示结果:
把索引字符串 var_str 改为 "a2",结果如下所示