字典是否可以多次使用同一个密钥?我环顾四周,答案似乎是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)类。 –