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

这两段C#代码的实现逻辑是否完全一致?

两段C#代码逻辑一致性及FirstOrDefault返回值求证

结论:两段代码逻辑完全一致,FirstOrDefault()未找到匹配项时会返回null(针对Item这种引用类型)

代码逻辑对比

  • 第一段代码通过foreach遍历Items集合,找到第一个ID与输入参数匹配的Item实例后立即返回;遍历结束未找到匹配项时,返回null。
  • 第二段代码的FirstOrDefault(item => item.ID == id)方法,本质就是实现了相同的逻辑:
    1. 遍历集合,返回第一个满足item.ID == id条件的元素
    2. 当集合中没有元素满足条件时,返回对应类型的默认值

关于默认值的说明

因为Item是引用类型(从第一段代码返回null的写法可以判断),而引用类型的默认值就是null,所以此时FirstOrDefault的返回行为和第一段代码完全一致。

如果Item是值类型(比如结构体),FirstOrDefault会返回该值类型的默认实例(所有成员为对应默认值的对象),但你的场景中不存在这种情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:02:21