0
我需要做一些比較和洗牌領域,(我來自一個更多的PHP背景和使用數組是完全不同的,如readin後建議很多東西我知道VB.NET使用LIST和字典更容易vb.net字典,字典字典...填充讀出後總是空的
我有一本字典(字符串,字典(的字符串,字符串))填充好,但我嘗試讀出後,它總是空...
下面我填了幾個東西var我說的是 fillDictionary裏面的matcheswholename VALUES部分 我填充fillDictionary並將它添加到ma tchesWholename 之後,我清楚它,因爲它在一個循環,更多是來。
Dim matchesTotal As New List(Of String)
Dim fillDictionary As New Dictionary(Of String, String)
Dim matchesWholename As New Dictionary(Of String, Dictionary(Of String, String))
Try
If ds.Tables("matchesWholename").Rows.Count > 0 Then
For Each dr As DataRow In ds.Tables("matchesWholename").Rows
If Not matchesWholename.ContainsKey(CStr(dr("key"))) Then
fillDictionary.Add("programme", CStr(dr("programme")))
fillDictionary.Add("remark", CStr(dr("remark")))
fillDictionary.Add("key", CStr(dr("key")))
fillDictionary.Add("displayname", CStr(dr("prop_value")))
Console.WriteLine("count before insert {0}", fillDictionary.Count)
matchesWholename.Add(CStr(dr("sanction_key")), fillDictionary)
End If
If Not matchesTotal.Contains(CStr(dr("key"))) Then
matchesTotal.Add(CStr(dr("key")))
End If
fillDictionary.Clear()
Next
End If
Catch ex As Exception
Console.WriteLine("Err: {0}", ex.Message)
End Try
當後來我試圖讀出這樣的,它沒有返回.... 我其實發送filldictionary的副本到它呢?或者我的clear()方法清楚它裏面的內容嗎?
Dim pair As KeyValuePair(Of String, Dictionary(Of String, String))
Dim subpair As KeyValuePair(Of String, String)
For Each pair In matchesWholename
' Display Key and Value.
For Each subpair In pair.Value
Console.WriteLine("{0}, {1}, {2}", pair.Key, subpair.Key, subpair.Value)
Next
Next
是的,因爲把它放在那匹配的全名字典中後,我會重用它,但是不想要舊的結果。 – renevdkooi 2012-03-12 09:39:41
@renevdkooi,你有沒有通過這個調試來查看是否有任何東西被添加到'matchesWholename'字典中? – 2012-03-12 09:40:58
其實你可能是對的,我發現當我不這樣做的時候它確實被填滿了,但是不正確......我認爲加入會烘烤它的一個副本,而不是把它的實際參考 – renevdkooi 2012-03-12 09:41:48