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

C#中List.Contains方法的结果判断及与Equals方法的关联解析

问题解答

代码示例

int item1=5;
int item2=6;
int item3=7;
int item4=5;

List<int> items= new List<int> {item1,item2,item3};

bool result= items.Contains(item4);

选项

a) false,因为列表中不存在变量"item4"
b) true,因为item4的值为5,该值存在于列表元素的值中


正确答案:b) true

原因

List<T>.Contains的核心逻辑是检查值是否存在于列表中,而非检查变量本身是否被加入列表。item4的值是5,列表里的item1值同样是5,二者值相等,因此Contains会返回true。

Contains方法与Equals方法的关联

List<T>.Contains内部会遍历列表中的每个元素,对每个元素调用其类型的Equals方法,和传入的参数做比较:

  • 对于int这类值类型,默认的Equals方法是比较值是否相等,只要两个值一致就返回true。
  • 如果是引用类型,默认Equals会比较对象的引用地址,但如果类型重写了Equals(比如string),就会按重写后的逻辑比较(比如string的Equals是比对字符内容)。

这个例子里,int是值类型,item4的5和列表中item1的5通过int.Equals比较会返回true,所以Contains最终返回true。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:36:24