这是我的字符串:
gamename\jbnightfire\hostname\testserver\hostport\26015
我试图将此字符串拆分为字典(字符串,字符串)。请注意,此字符串不是静态的,可能包含更多键和值。
字典将包含以下内容:
key = gamename, value = jbnightfire
key = hostname, value = testserver
key = hostport, value = 26015
我尝试过至少5种不同的方法,似乎无法做到这一点。它应该非常简单,但对于我的生活,我无法让它发挥作用。任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
拆分字符串并以2为步长循环遍历它,一次前进2个项目。这意味着密钥将位于索引i
,而i + 1
将是值。
Dim input = "gamename\jbnightfire\hostname\testserver\hostport\26015"
Dim split = input.Split(New String() { "\" },
StringSplitOptions.RemoveEmptyEntries)
Dim dict As New Dictionary(Of String, String)
For i As Integer = 0 To split.Length - 1 Step 2
dict.Add(split(i), split(i + 1))
Next
请注意,上述方法使用Add
方法,如果存在重复键,则会抛出异常。如果您不希望重复,请使用上述方法。
或者,您可以将值直接分配给key,在这种情况下,如果密钥存在,它将覆盖任何现有值:
dict(split(i)) = split(i + 1)
另一种选择是使用ContainsKey
并跳过它(如果存在),或执行一些额外的逻辑来确定是跳过它还是保留它。例如,如果已经存在,则会跳过它:
For i As Integer = 0 To split.Length - 1 Step 2
If dict.ContainsKey(split(i)) Then Continue For
dict.Add(split(i), split(i + 1))
Next