我有2个List(of String)。让我们称它们为myList1和myList2。这些(String)列表中的每一个都根据用户操作添加和删除了这些项目。在代码的其他地方,我填充一个字符串变量,其名称为其中一个List(of String)。让我们称之为myString。
让我们说myString = "myList2"
。我将如何仅从该字符串值获取myList2中的项目数?我是否必须在myString上使用某种DirectCast()
或CType()
?
答案 0 :(得分:3)
有几种选择。
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
在这种情况下避免反射。它是不受欢迎的,会导致可怕的代码。
答案 1 :(得分:0)
如果没有大量反思,你将无法这样做。保存计数变量会更好:
Dim listCount = myList2.Count