字典是否可以多次使用同一個密鑰?我環顧四周,答案似乎是YesNo。我從csv文件中讀取cc數字並將它們添加到字典中。大多數表示「否」的帖子通常表示多次添加一個鍵會引發異常。這將是錯誤的,因爲我沒有遇到這個問題。
基本上我有這個詞典具有相同密鑰的VB字典不止一次
Dim allCalls As New Dictionary(Of String, Array)
,我填充它這樣
Dim Path As String = My.Application.Info.DirectoryPath & "\Calls.txt"
Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(Path)
Dim parts() As String
Dim lines() As String = IO.File.ReadAllLines(Path)
Array.Sort(lines)
For x As Integer = 0 To lines.GetUpperBound(0)
parts = lines(x).Split(CChar(","))
Dim data(1) As String
data(0) = parts(2)
data(1) = parts(5)
allCalls.Add(parts(1), data)
Next
reader.Close()
這部分工作得很好,但據我好像覆蓋我的舊數據,當我添加我無法告訴你的相同密鑰。不過,這對我來說似乎並不直觀,不會造成某種問題。基本上我的目標是能夠搜索這個東西的密鑰,並獲得所有的數組數據,我不知道該怎麼做。我甚至不知道它是否還在那裏,所以如何處理這些事情的任何幫助都會很好。
似乎沒有爲此設置內置功能。你可以做的是製作一個字典,它有一個List作爲其值的類型。然後,當添加到字典中時,您需要檢查密鑰的存在並將該值添加到保留相同密鑰的所有值的列表中。 –
在'reader.Close()'上設置一箇中斷,然後將鼠標放在'allCalls'上,您將能夠看到內容。字典鍵必須是唯一的,否則將無法獲得正確的數據。使用'allCall.ContainsKey'來測試一個密鑰是否已經存在。 'allCalls(key)= newData'將替換與該鍵相關的數據。 – Plutonix
如果您至少使用.NET 3.5,則可以使用['Lookup'](http://msdn.microsoft.com/zh-cn/library/bb460184.aspx)類。 –