Hallo,
Ik ben bezig met een functie op wat gegevens uit een bestand in een HashTable op te slaan. De opbouw van de Hashtable is als volgt:
De uitkomst zou dus als volgt moeten zijn:
Dit zou het moeten zijn, echter als ik "key_01" in de HashTable heb staan, en later doormiddel van "HashTable.Add()" een nieuwe entry toevoeg, worden de values van ALLE entries overschreven. Dus "value1" heeft zijn eigen key, maar de values zijn die van "value2".
Na de eerste entry is de opbouw als volgt:
Na de 2e entry is de opbouw als volgt:
Ik snap niet hoe het mogelijk is, aangezien ik nergens de gegevens ophaal of wijzig (met debugged stop ik als het bestand is uitgelezen). Heeft iemand enig idee wat er misgaat?
Ik ben bezig met een functie op wat gegevens uit een bestand in een HashTable op te slaan. De opbouw van de Hashtable is als volgt:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| HashTable AllValues = new HashTable(); // Aanmaken van de eerste entry string key = "key_01"; HashTable value = new HashTable(); value.Add("subkey1", "lalala"); value.Add("subkey2", "hihih"); value.Add("subkey3", "hahaha"); AllValues.Add(key, value); // En nu de tweede (gebeurt in een lus, dus waardes worden NIET hergebruikt) string key = "key_02"; HashTable value = new HashTable(); value.Add("subkey1", "mooo"); value.Add("subkey2", "woof"); AllValues.Add(key, value); |
De uitkomst zou dus als volgt moeten zijn:
C#:
1
2
3
4
5
6
7
8
| HashTable value1 = AllValues["key_01"] as HashTable; string subvalue1 = value1["subkey1"].ToString(); // "lalala" string subvalue2 = value1["subkey2"].ToString(); // "hihihi" string subvalue3 = value1["subkey3"].ToString(); // "hahaha" HashTable value2 = AllValues["key_02"] as HashTable; string subvalue1 = value2["subkey1"].ToString(); // "mooo" string subvalue2 = value2["subkey2"].ToString(); // "woof" |
Dit zou het moeten zijn, echter als ik "key_01" in de HashTable heb staan, en later doormiddel van "HashTable.Add()" een nieuwe entry toevoeg, worden de values van ALLE entries overschreven. Dus "value1" heeft zijn eigen key, maar de values zijn die van "value2".
Na de eerste entry is de opbouw als volgt:
C#:
1
2
3
4
| HashTable value1 = AllValues["key_01"] as HashTable; string subvalue1 = value1["subkey1"].ToString(); // "lalala" string subvalue2 = value1["subkey2"].ToString(); // "hihihi" string subvalue3 = value1["subkey3"].ToString(); // "hahaha" |
Na de 2e entry is de opbouw als volgt:
C#:
1
2
3
4
5
6
7
8
| HashTable value1 = AllValues["key_01"] as HashTable; string subvalue1 = value1["subkey1"].ToString(); // "mooo" string subvalue2 = value1["subkey2"].ToString(); // "woof" // string subvalue3 = value1["subkey3"].ToString(); // ERROR, BESTAAT NIET! HashTable value2 = AllValues["key_02"] as HashTable; string subvalue1 = value2["subkey1"].ToString(); // "mooo" string subvalue2 = value2["subkey2"].ToString(); // "woof" |
Ik snap niet hoe het mogelijk is, aangezien ik nergens de gegevens ophaal of wijzig (met debugged stop ik als het bestand is uitgelezen). Heeft iemand enig idee wat er misgaat?