您的位置:首页 > 移动开发 > Unity3D

[Unity&C#]简化IF语句的一种方式x => x.name == var_str

2017-06-06 19:04 483 查看
无意间看到这样一个用法,和 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",结果如下所示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: