我不明白爲什麼沒有一個本地函數來做到這一點。假設我創建了以下類:通過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的值我想這可以工作,但它會產生一致性問題。如果字典的關鍵字與對象的名稱不同,該怎麼辦?如果沒有其他的解決辦法,我想我必須解決這個解決方案。謝謝! –