将字符串拆分为字典VB.net

时间:2014-05-27 02:49:32

标签: vb.net string dictionary split

这是我的字符串:

gamename\jbnightfire\hostname\testserver\hostport\26015

我试图将此字符串拆分为字典(字符串,字符串)。请注意,此字符串不是静态的,可能包含更多键和值。

字典将包含以下内容:

key = gamename, value = jbnightfire
key = hostname, value = testserver
key = hostport, value = 26015

我尝试过至少5种不同的方法,似乎无法做到这一点。它应该非常简单,但对于我的生活,我无法让它发挥作用。任何帮助将不胜感激。感谢。

1 个答案:

答案 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