我想要做的是獲取給定哈希表中的對象的值,這要歸功於它的關鍵。 這裏是我的代碼:在散列表中,如何通過鍵獲取對象值?
Hashtable quotidiani = new Hashtable();
Giornale corriere = new Giornale();
corriere.nome("Corriere della Sera");
corriere.direttore("Ferruccio de Bortoli");
corriere.anno("1876");
quotidiani.Add("corriere", corriere);
Giornale repubblica = new Giornale();
repubblica.nome("la Repubblica");
repubblica.direttore("Ezio Mauro");
repubblica.anno("1976");
quotidiani.Add("repubblica", repubblica);
Giornale ilFatto = new Giornale();
ilFatto.nome("Il Fatto Quotidiano");
ilFatto.direttore("Antonio Padellaro");
ilFatto.anno("2009");
quotidiani.Add("ilfatto", ilFatto);
/*IDictionaryEnumerator enumeratore = quotidiani.GetEnumerator();
Console.WriteLine("Di quale quotidiano vuoi visionare le informazioni? (scrivi la chiave): ");
string answer = Console.ReadLine();
while (enumeratore.MoveNext()) {
if (quotidiani.ContainsKey(answer))
{
Giornale grl = (Giornale)enumeratore.Value;
Console.WriteLine("Nome: {0}, Direttore: {1}, Anno di fondazione: {2}", grl.getNome(), grl.getDirettore(), grl.getAnno());
Console.WriteLine("la chiave è presente");
Console.WriteLine(quotidiani[answer]);
break;
}
else {
Console.WriteLine("Chiave non esistente");
break;
}
class Giornale {
string nomeQuotidiano = "";
string dirQuotidiano = "";
string annoQuotidiano = "";
// Funzioni di assegnazione:
public void nome(string nQuotidiano) {
this.nomeQuotidiano = nQuotidiano;
}
public void direttore(string dQuotidiano) {
this.dirQuotidiano = dQuotidiano;
}
public void anno(string aQuotidiano){
this.annoQuotidiano = aQuotidiano;
}
// Funzioni di richiamo:
public string getNome() {
return this.nomeQuotidiano;
}
public string getDirettore() {
return this.dirQuotidiano;
}
public string getAnno() {
return this.annoQuotidiano;
}
}
對不起,如果對象和東西的名稱是意大利人,我沒想到的是我沒能停留在這一點上。
基本上,我被卡住的地方就在評論代碼塊中:我想要做的是在哈希表中找到它的3個對象之一,並使用它的鍵獲取其元素。
所以,我想把關鍵(與readline方法),並找到關鍵的對象的元素。我怎樣才能做到這一點?可能解決方案非常簡單,但我現在看不到它。
隨着['Hashtable.Item'](http://msdn.microsoft.com/en -us/library/system.collections.hashtable.item(v = vs.110).aspx):即'value = hashTable [key]'。但應該使用[Dictionary](http://msdn.microsoft.com/en-us/library/xfhwa508(v = vs.110).aspx)來代替它。它更新,是泛型的,並符合泛型IDictionary'/ IEnumerable',並在LINQ中表現更好。 – user2864740
oft:您應該使用** [Properties](http://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx)**而不是定製的,類似於java的'get' /'set'方法。 – MarcinJuraszek