Winforms 通过linq查找子控件

Winforms 通过linq查找子控件,winforms,linq,telerik,ribbon,Winforms,Linq,Telerik,Ribbon,这是查找功能区控件的代码 bool found = testRibbon.CommandTabs.Cast<RibbonTab>().Any(t => t.name == tab.Name); boolfound=testRibbon.CommandTabs.Cast().Any(t=>t.name==tab.name); 现在,我如何通过名称找到RibbonTab成员的RadRibbonBarGroup 场景如下: 我有一个功能区控件,并从模块填充选项卡 在选项卡内部我添

这是查找功能区控件的代码

bool found = testRibbon.CommandTabs.Cast<RibbonTab>().Any(t => t.name == tab.Name);
boolfound=testRibbon.CommandTabs.Cast().Any(t=>t.name==tab.name);
现在,我如何通过名称找到RibbonTab成员的RadRibbonBarGroup

场景如下: 我有一个功能区控件,并从模块填充选项卡 在选项卡内部我添加RadRibbonBarGroup,在RadRibbonBarGroup内部我添加RibbonButtons 现在为了防止重复,我需要检查tab是否存在,ribonbargroup是否存在,并让按钮跳过该tab,bargroup或者添加按钮。。选项卡和条形图组也应如此。 这是实现这一情景的最快方法 我可以通过linq来完成吗?还是应该用for each witch进行迭代是最好的解决方案。

testRibbon.CommandTabs.Cast()。其中(t=>t.name==tab.name)
testRibbon.CommandTabs.Cast<RibbonTab>().Where(t => t.name == tab.Name)
                      .SelectMany(x => x.Groups.Where(g => g.Name == groupName));
.SelectMany(x=>x.Groups.Where(g=>g.Name==groupName));
testRibbon.CommandTabs.Cast()。其中(t=>t.name==tab.name)
.SelectMany(x=>x.Groups.Where(g=>g.Name==groupName));