2014-10-21 3 views
0

У меня есть ArrayList, который содержит как фоны, так и бары.
Как я могу повторить этот ArrayList, определяющий, является ли каждый элемент Foo или Bar?
Я думал, что это будет так же просто, как моя попытка, но я получаю предупреждение о том, что Foo и Bar являются типами и не могут использоваться в качестве выражений.Как определить, что каждый объект в ArrayList?

Dim myArrayList As New ArrayList 
Dim foo As New Foo 
Dim bar As New Bar 

myArrayList.add(foo) 
myArrayList.add(bar) 

For counter As Integer = 0 To myArrayList.Count 
    If myArrayList.Item(counter).GetType() = Foo Then 
     Response.Write("Item " & counter & " is a Foo") 
    Else 
     Response.Write("Item " & counter & " is a Bar") 
    End If 
Next 
+1

вам нужно 'GetType (Foo)' для сравнения типа к типу; хотя 'foo As New Foo' является довольно выигрышным, поскольку VB не чувствителен к регистру – Plutonix

+0

Посмотрите на ключевое слово ['is'] (http://msdn.microsoft.com/en-us/library/scekt9xw.aspx) – WhoIsRich

+0

@Plutonix Спасибо, что сделал трюк. –

ответ

1

Попробуйте

If TypeOf myArrayList.Item(counter) Is Foo Then 
    Response.Write("Item " & counter & " is a Foo") 
Else 
    Response.Write("Item " & counter & " is a Bar") 
End If 
Смежные вопросы