在silverlight中,我的自定义控件位于StackPanel
的UIElementCollection
中。我想按一个特定的值得到它们的列表。容器中只有DivElements
。当我知道我有一个或多个Nothing
时,它会返回。我知道我可以制作一个简单的循环并内联转换类型,但我想在LINQ
和Cast(Of TResult)
方面做得更好。我尝试铸造:
Dim myList = TryCast(spDivs.Children.Where(Function(o) DirectCast(o, DivElement).ElementParent Is bComm).Cast(Of DivElement)(), List(Of DivElement))
问题是不能将强制转换为List(Of DivElement)
。集合是UIElementCollection
,而不是List(Of T)
。
不过,你可以建立一个新的列表。这也可以通过使用OfType
而不是手动铸造来简化:
Dim myList = spDivs.Children.OfType(Of DivElement)()
.Where(Function(o) o.ElementParent Is bComm)
.ToList()