【问题标题】:Linq Query sub-selection issueLinq Query 子选择问题
【发布时间】:2017-09-22 23:43:43
【问题描述】:

这些对象是特定于 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 对象都变平。

【问题讨论】:

  • OfType()

标签: c# wpf linq


【解决方案1】:

你试过了吗

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

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

【讨论】:

    【解决方案2】:
    var v = Style.Triggers
                 .OfType<EventTrigger>()
                 .SelectMany(x => x.Actions)
                 .OfType<BeginStoryboard>();
    

    【讨论】:

    • 这里的审稿人:我想告诉你单行答案应该没有什么意义......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多