gpt4 book ai didi

c# - HashSet (.NET4) 不会忽略 c# 中的重复项

转载 作者:太空狗 更新时间:2023-10-30 00:03:43 25 4
gpt4 key购买 nike

<分区>

我读到 .net4 中的 HashSet 将忽略所有重复项。所以我做的是:

    HashSet<medbaseid> medbaseidlist = new HashSet<medbaseid>();

for (int i = 2; i <= rowCount; i++)
{
medbaseid medbaseid = new medbaseid() {
mainClass = xlRange.Cells[i, 1].Value2.ToString(),
genName = xlRange.Cells[i, 2].Value2.ToString(),
speciality = xlRange.Cells[i, 3].Value2.ToString(),
med_type_id = getId(xlRange.Cells[i, 4].Value2.ToString(),
id = i-1
)
};

medbaseidlist.Add(medbaseid);
}

medbaseid 可以与前一个对象具有相同的值。

但是如果我最后检查哈希集,就会有重复项。 enter image description here

我添加的 equals 和 gethashcode 方法没有帮助。我还为类(class)添加了一个ID。所以 2 个对象可以具有相同的内容但不同的 id :

   public override bool Equals(object obj)
{
medbaseid medb = (medbaseid)obj;
return ((medb.id == this.id) && (medb.genName == this.genName) && (medb.mainClass == this.mainClass) && (medb.med_type_id == this.med_type_id) && (medb.speciality == this.speciality)) ? true : false;
}

public override int GetHashCode()
{
return id;
}

所以我现在的问题是:我做错了什么,或者这不是使用 HashSet 的正确方法吗?在此先感谢您的帮助。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com