使用List的名称获取列表计数

时间:2012-12-07 23:19:58

标签: asp.net vb.net visual-studio-2008

我有2个List(of String)。让我们称它们为myList1和myList2。这些(String)列表中的每一个都根据用户操作添加和删除了这些项目。在代码的其他地方,我填充一个字符串变量,其名称为其中一个List(of String)。让我们称之为myString。

让我们说myString = "myList2"。我将如何仅从该字符串值获取myList2中的项目数?我是否必须在myString上使用某种DirectCast()CType()

2 个答案:

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