错误:检查项目是否已在哈希集中时无法从'int'转换为'fileReader.Street'



我正在创建一个";街道";像这样:

public HashSet<Street> streets= new HashSet<Street>();
Straat tmpStreet = new Street(tmpId, tmpNiscode, fileData[2]);
if (!Streets.Contains(tmpNiscode))
{
Streets.Add(tmpStreet);
}

然而,当我想检查街道是否已经在哈希集中时,我会得到一个错误:

无法从"int"转换为"fileReader.Street">

有人能帮我吗?

问题是您正在创建一个类型为Street的哈希集,然后您试图检查此街道集是否包含整数tmpNiscode

在你的情况下,你可以检查街道是否已经包含在这样的集合中:

public HashSet<Street> streets= new HashSet<Street>();
Straat tmpStreet = new Street(tmpId, tmpNiscode, fileData[2]);
if (!streets.Contains(tmpStreet))
{
streets.Add(tmpStreet);
}

要获得类的正确哈希代码,还必须重写类的GetHashCode函数。你可以在这里查看

最新更新