2017-09-22 12 views
0

オブジェクトはWPF固有である問題が、同じこと...この時点でLINQのクエリのサブ選択

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

は、私が正しい3 TriggerActionCollectionsを取得します。私が次にしたいのは、内のアイテムを選択することです。それぞれのコレクションは「BeginStoryboard」です。アクション(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つのTriggerActionCollectionがあり、そのうちの1つに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

レビュー:私は1行の答えは、nべきことを伝えるにはほとんどのポイントがあります推測します... – user35443