我有 2 个列表(字符串)。让我们称它们为 myList1 和 myList2。这些列表(字符串)中的每一个都根据用户操作添加和删除项目。在代码的其他地方,我用这两个 List(of String) 之一的名称填充了一个字符串变量。让我们称之为 myString。
所以让我们说myString = "myList2"
。我将如何仅从该字符串值中获取 myList2 中的项目数?我是否必须在 myString 上使用某种DirectCast()
或?CType()
我有 2 个列表(字符串)。让我们称它们为 myList1 和 myList2。这些列表(字符串)中的每一个都根据用户操作添加和删除项目。在代码的其他地方,我用这两个 List(of String) 之一的名称填充了一个字符串变量。让我们称之为 myString。
所以让我们说myString = "myList2"
。我将如何仅从该字符串值中获取 myList2 中的项目数?我是否必须在 myString 上使用某种DirectCast()
或?CType()
有几个选择。
1:
Select Case myString
Case "myList1"
Return myList1.Count
Case "myList2"
Return myList2.Count
End Select
2:将列表存储在字典中:
Dim myDictionary As Dictionary(Of String, List(Of String)) = New Dictionary(Of String, List(Of String))
myDictionary.Add("myList1", New List(Of String))
myDictionary.Add("myList2", New List(Of String))
...
Return myDictionary(myString).Count
在这种情况下避免反射。它是不必要的,会导致糟糕的代码。
如果没有大量的反思,你将无法做到这一点。最好保存一个计数变量:
Dim listCount = myList2.Count