Linq - OfType<>没有按预期工作

时间:2010-10-03 12:32:44

标签: linq oftype

我有以下代码检测某个点下面的Silverlight应用程序中的所有元素

然后将它们过滤为特定类型的那些 - CardButton

IEnumerable<UIElement> elementsBeneathCursor =
                VisualTreeHelper.FindElementsInHostCoordinates(new Point(xPosn, yPosn), Application.Current.RootVisual);
            IEnumerable<CardButton> cardsBeneathCursor = elementsBeneathCursor.OfType<CardButton>();

即使我在调试器中检查elementsBeneathCursor,我也可以看到有两个类型为CardButton的元素 然而,当我应用OfType<>过滤器时,结果列表为空

出了什么问题?

1 个答案:

答案 0 :(得分:3)

结果列表不会实际为空...但如果这些元素实际上都不是CardButton,则序列将为空。请注意,OfType不执行任何自定义转换,因此如果您希望这些转换发生,则可以解释它。

尝试浏览未过滤的列表,并打印出在每个元素上调用GetType的结果,以查看真正的内容。