如何在序列中获取linq中的元素范围?

anm*_*rti 5 c# linq asp.net

我有这个查询集合:

Panel thePanel = menuCell.Controls.OfType<Panel>()
                    .Where(panel => panel.Controls.OfType<HyperLink>().Any(
                        label => label.ID == clas))
                    .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

这只获得具有特定ID的超链接的Panel.我需要不仅firstOrDefault而是匹配的元素(仅第一)和2个未来的序列中.我没有尝试任何东西,因为不知道如何.

Ser*_*kiy 7

这将返回前三个面板,其中包含具有特定ID的超链接

var thePanels = menuCell.Controls.OfType<Panel>()
                    .Where(panel => panel.Controls.OfType<HyperLink>()
                                         .Any(label => label.ID == clas))
                    .Take(3);
Run Code Online (Sandbox Code Playgroud)

如果您需要第一个具有特定ID的超链接的面板,接下来的两个面板,无论它们有什么:

var thePanels = menuCell.Controls.OfType<Panel>()
                        .SkipWhile(panel => !panel.Controls.OfType<HyperLink>()
                                                 .Any(label => label.ID == clas))
                        .Take(3);
Run Code Online (Sandbox Code Playgroud)