我有这个查询集合:
Panel thePanel = menuCell.Controls.OfType<Panel>()
.Where(panel => panel.Controls.OfType<HyperLink>().Any(
label => label.ID == clas))
.FirstOrDefault();
这只获得具有特定ID的超链接的Panel。我不仅需要获得序列中的firstOrDefault
而且匹配元素(仅第一个)和下一个。我没有尝试任何事情,因为不知道如何。
答案 0 :(得分:7)
这将返回前三个面板,其中包含具有特定ID的超链接
var thePanels = menuCell.Controls.OfType<Panel>()
.Where(panel => panel.Controls.OfType<HyperLink>()
.Any(label => label.ID == clas))
.Take(3);
如果您需要第一个具有特定ID的超链接的面板,以及接下来的两个面板:
var thePanels = menuCell.Controls.OfType<Panel>()
.SkipWhile(panel => !panel.Controls.OfType<HyperLink>()
.Any(label => label.ID == clas))
.Take(3);
答案 1 :(得分:1)
如果你想找到一个具有指定条件的面板,然后接下来,接着两个面板,无论它们是否满足条件,你都可以这样做:
IEnumerable<Panel> thePanelAndTwoNext = menuCell.Controls.OfType<Panel>()
.SkipWhile(panel => !panel.Controls.OfType<HyperLink>()
.Any(label => label.ID == clas))
.Take(3);