如何使用lambda表达式与.Find方法替代foreach实现C#元素查找功能
实现代码
你可以直接使用List<T>自带的Find方法搭配Lambda表达式实现完全一致的逻辑,代码如下:
Action delljack = () => { // 查找第一个name属性等于jack的Gost对象 Gost matchedGuest = list.listofguests.Find(x => x.name == "jack"); if (matchedGuest != null) { Console.WriteLine("There is jack in my list"); return; } };
逻辑说明
- 原代码的逻辑是遍历客人群组集合,找到第一个名叫jack的元素就输出提示并立刻退出方法,不会继续遍历后续元素
Find方法的执行逻辑和上述遍历逻辑完全一致:会按集合顺序匹配Lambda表达式定义的条件,找到第一个符合条件的元素就立刻返回,找不到对应元素时会返回引用类型的默认值null,性能和原foreach写法没有差异
内容的提问来源于stack exchange,提问作者Jure Kozole
相关产品推荐
相关产品推荐

