我不明白为什么没有一个本地函数来做到这一点。假设我创建了以下类:通过hashcode获取对象
public class Student {
public string Name {get; set;}
public override int GetHashCode() {
return(Name.GetHashCode());
}
}
之后,我创建一个包含了一些学生的HashSet
。现在我想用他的名字从HashSet
找一个学生,这个名字也是使用的哈希码,没有列举。这可能吗?如果是这样,我该如何做到这一点?由于学生的姓名被用作哈希码,因此应该可以使用O(1)
操作,对吗?
使用HashSet.Contains()。这是摊销O(1)。 –
使用'字典<字符串,学生>',你可以得到'myDictionary [“name”]' –
@ Siriam的值我想这可以工作,但它会产生一致性问题。如果字典的关键字与对象的名称不同,该怎么办?如果没有其他的解决办法,我想我必须解决这个解决方案。谢谢! –