You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于布尔类型List的FindAll Lambda表达式逻辑疑问

问题解答

首先明确List.FindAll()的核心逻辑:它会遍历集合中的每个元素,将元素传入你提供的Lambda表达式,只有当Lambda返回true时,该元素才会被保留到结果列表中。

关于x => x的含义

因为allValues是List<bool>,Lambda里的x本身就是布尔类型的值。x => x这个表达式并没有做任何“相等判断”,它的作用就是直接返回当前元素x的布尔值:

  • 当x为true时,Lambda返回true,该元素会被FindAll保留;
  • 当x为false时,Lambda返回false,该元素会被过滤掉。

对比你理解的写法

你提到的hobby => x.Equals(true)(这里存在笔误,正确写法应为hobby => hobby.Equals(true)),其实和x => x是完全等价的:

  • 当hobby为true时,hobby.Equals(true)返回true,元素被保留;
  • 当hobby为false时,hobby.Equals(true)返回false,元素被过滤。

本质上这两种写法都是在判断元素本身是否为true,只是前者的写法更简洁。

如果需要筛选出所有false值,只需把Lambda改成x => !x——当x为false时,!x返回true,对应元素就会被保留下来。

内容的提问来源于stack exchange,提问作者Francky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:15:54