gpt4 book ai didi

c# - 搜索 HashSet 的最佳方式

转载 作者:太空狗 更新时间:2023-10-29 18:29:17 25 4
gpt4 key购买 nike

我有一个 Objs 的 HashSet,其中 Obj 定义如下:

public class Obj 
{
private int _id;
private string _desc;
private int _sum;

public int Id
{
get { return _id; }
set { _id = value; }
}

public string Description
{
get { return _desc; }
set { _desc = value; }
}

public int Sum
{
get { return _sum; }
set { _sum = value; }
}

public Obj(int id, string desc, int sum)
{
_id = id;
_sum = sum;
_desc = desc;
}

public override bool Equals(Obj other)
{
return this._sum == other._sum
&& this._desc == other._desc;
}

public override int GetHashCode()
{
int hash = 13;
hash = (hash * 7) + _sum.GetHashCode();
hash = (hash * 7) + _desc.GetHashCode();

return hash;
}
}

这工作正常,但当 HashSet.Add(obj) 返回 false 时,我无法从 HashSet 中检索。在这种情况下,检索已包含在 HashSet 中的 Obj_id 的最佳方法是什么?

最佳答案

我的看法:总和 + 描述(用于哈希码,等于)= 键和 _id(你想要检索的内容)= 值。

这个场景显然指向一个字典而不是一个哈希集......集合并不意味着任意查找/检索。

关于c# - 搜索 HashSet 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797024/

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