Linq Query子选择问题

时间:2017-09-22 23:43:43

标签: c# wpf linq

对象是WPF特定的,但同样的事情......

        var v = Style.Triggers.Where(x => x is EventTrigger)
                              .Cast<EventTrigger>()
                              .Select(x => x.Actions);

此时,我得到3个TriggerActionCollections,这是正确的。我接下来要做的是选择每个集合中 中的项目“是BeginStoryboard”。我似乎无法弄清楚如何选择Actions(TriggerActionsCollection)中的项目。

我在想这样的事情:

        var v = Style.Triggers.Where(x => x is EventTrigger)
                              .Cast<EventTrigger>()
                              .Select(x => x.Actions.Select(y => y).Where(y => y is BeginStoryboard));

但这不起作用。有帮助吗?

对于那些非wpf的人。是的,有3个TriggerActionCollections,其中一个有一个BeginStoryBoard对象。但为了论证,我希望每个BeginStoryBoard对象都变平了。

2 个答案:

答案 0 :(得分:1)

你试过吗

var v = Style.Triggers.Where(x => x is EventTrigger)
                              .Cast<EventTrigger>()
                              .SelectMany(x => x.Actions)
                              .Where(...)

SelectMany instead of Select返回单个集合而不是集合集合。

答案 1 :(得分:0)

var v = Style.Triggers
             .OfType<EventTrigger>()
             .SelectMany(x => x.Actions)
             .OfType<BeginStoryboard>();