Select 来自另一个变量的变量数组名称

Select Variable Array Name From Another Variable

以多个数组为例:

Dim Common() As String = {"value1", "value2", "value3", "value4"}
Dim Browser() As String = {"item1", "item2", "item3", "item4", "item5"}
Dim AddedItems() As String = {"item6", "item7", "item8", "item9"}
...

字符串 (getItem) 将被设置为上面列出的数组名称之一: Dim getItem As String = "Browser"

如何使用它来提取适当的数组列表? 类似于以下内容:

For Each listItem As String In {getItem}
'Do this...
Next

这需要输出到数组项“item1”、“item2”、“item3”、“item4”、“item5”

这可以在 VB NET 中完成吗?

您的建议不是事情的运作方式。以正确的方式做事的最接近的选择是使用 Dictionary 按名称识别数组:

Dim arrays As New Dictionary(Of String, String()) From
        {
            {"Common", {"value1", "value2", "value3", "value4"}},
            {"Browser", {"item1", "item2", "item3", "item4", "item5"}},
            {"AddedItems", {"item6", "item7", "item8", "item9"}}
        }

然后您可以这样做:

Dim arrayName = "Browser"

For Each item In arrays(arrayName)
    'Use item here.
Next

如果您不想通过将所有字符串数组一步注入到字典中来预先加载所有内容,而是希望使用 .Add() 命令按顺序添加字典元素,您可以使用这种方法:

Dim Common() As String = {"value1", "value2", "value3", "value4"}
Dim Browser() As String = {"item1", "item2", "item3", "item4", "item5"}
Dim AddedItems() As String = {"item6", "item7", "item8", "item9"}

'Define the dictionary
Dim dicWordLists As New Dictionary(Of String, String())
'Add string arrays to dictionary
dicWordLists.Add("Common", Common)
dicWordLists.Add("Browser", Browser)
dicWordLists.Add("AddedItems", AddedItems)

'Set the key="Browser"
Dim getString As String = "Browser1"

'First, test if key is in dictionary, and if key is found, fetch value the string array
If dicWordLists.ContainsKey(getString) Then
    Dim strArray() As String = dicWordLists(getString)
    'Loop though all elements in string array
    For Each item In strArray
        MsgBox(item)
    Next
End If

如果您需要处理字典中的所有键条目,您可以使用以下方法遍历所有键:

For Each kvp As KeyValuePair(Of String, String()) In dicWordLists
  Dim strArray1() As String = kvp.Value
  For Each item In strArray1
     MsgBox(item)
  Next
Next