职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 919|回复: 2

c# equals方法的理解

[复制链接]
阿佳 发表于 2009-9-7 08:54 | 显示全部楼层 |阅读模式
static void Main(string[] args)
{
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();

list1.Add(1);
list1.Add(3);
list1.Add(4);

list2.Add(1);
list2.Add(3);
list2.Add(4);


Console.WriteLine(list1.Equals(list2));
Console.ReadLine();
}
为什么返回的还是FALSE?
逆风而行 发表于 2009-9-7 08:54 | 显示全部楼层

c# equals方法的理解

其实比较的只是这两个集合
而这两个集合是不同的对象
对于这两个集合你可以这样取list1.GetHashCode();
这样得到他们的hashCode码是不一样的
一个是58225482
一个是54267293
因而比较的出的结果为False;
你现在想要的结果是它们内容相同就让它们相等
这时你的override Equals方法
记着一定要重写
GetHashCode()方法
不然你集合中是空值
要狠 发表于 2009-9-7 22:18 | 显示全部楼层
False
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-5 22:57 , Processed in 0.115795 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表