2017-09-22 80 views
0

的对象是WPF特定的,但同样的事情...LINQ查询子选择问题

 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对象都变平。

+1

OfType () – loneshark99

回答

1

你试过

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

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

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

评论者在这里:我想有一点点告诉你,单行答案应该n ... – user35443