Assuming a base class of "Dog"...

```
Public Class Dog
  Public Property Breed as String
  Public Property Weight as Integer
End Class

```

Then, assume there are two possible interfaces that Dog can implement...

```
Public Interface iGuardDog
  Property PatrolRange  as Integer
  Property BarkVolume as Integer
End Interface

Public Interface iPlayfulDog
  Property RunSpeed as Integer
  Property FrisbeeSkill as Integer
End Interface

```

Then I define two classes that derive from Dog...

```
Public Class Shepherd
  Inherits Dog
  Implements iGuardDog
End Class

Public Class Poodle
  Inherits Dog
  Implements iPlayfulDog
End Class

```

So, I have a List(Of Dog) and add some Shepherds and Poodles to it. Now I want to find the Guard Dogs and check their patrol range...

```
For Each D as Dog in MyDogs.Where(Function(x) TypeOf x is iGuardDog)
  debug.Writeline(D.PatrolRange)   '' This line throws an exception because it can't see the PatrolRange property
Next

```

What's the proper way to accomplish what I want to do? I don't have a GuardDog base class; just an interface.