Как добраться, элемент располагаются в linq в последовательности?

У меня есть этот вопрос коллекции:

Panel thePanel = menuCell.Controls.OfType()
                    .Where(panel => panel.Controls.OfType().Any(
                        label => label.ID == clas))
                    .FirstOrDefault();

Это получает только Группу, у которой есть гиперссылка с определенным id. Я должен стать не только firstOrDefault , но и подобранный элемент (только первое) и 2, следующие в последовательности. Я ничего не попробовал, потому что не знают как.

5
nl ja de
Сначала , подобранный элемент, 2 следующими являются 2 затем в последовательности, которые следуют за подобранным.
добавлено автор anmarti, источник
Нет, будет только один подобранный элемент.
добавлено автор anmarti, источник
следующие два средства, проистеките простое итеративное начало из подобранного элемента. "IEnumerable xposes счетчик, который поддерживает простое повторение по неуниверсальному набору".
добавлено автор bAN, источник
Вопрос неясен. Условия такой как "сначала", "следующие два" подразумевают любой заказ. IEnumearble (T) не заказывают последовательность. Затем когда мы работающий с условиями такими выше, мы должны установить условие заказа точно.
добавлено автор Hamlet Hakobyan, источник
Подобранный элемент может быть больше чем 1, и следующие 2 могут быть любым из 2, если нет никакого точного заказа.
добавлено автор Hamlet Hakobyan, источник
Хорошо. Но следующие 2 могут быть любыми 2.
добавлено автор Hamlet Hakobyan, источник

2 ответы

Это возвратит сначала три группы, у которых есть гиперссылки с определенным id

var thePanels = menuCell.Controls.OfType()
                    .Where(panel => panel.Controls.OfType()
                                         .Any(label => label.ID == clas))
                    .Take(3);

Если вам нужна первая группа, у которых есть гиперссылки с определенным id и следующие две группы вообще, они имеют:

var thePanels = menuCell.Controls.OfType()
                        .SkipWhile(panel => !panel.Controls.OfType()
                                                 .Any(label => label.ID == clas))
                        .Take(3);
7
добавлено
Да, только первое должно соответствовать ID , следующие 2 являются просто 2 затем в последовательности.
добавлено автор anmarti, источник
@bAN..., но немного трудный;)
добавлено автор anmarti, источник
Linq так влиятелен..
добавлено автор bAN, источник
Я don' t думают that' s правильный. Этот doesn' t возвращают подобранный элемент и 2 следующих элемента (который может не соответствовать). Это возвращает первые три матча.
добавлено автор fero, источник
Да, второй кажется правильным.;-)
добавлено автор fero, источник

Если вы хотите найти одну группу с указанным условием, и затем взять его, и следующие два, независимо от того, удовлетворяют ли они условие или нет, вы могли бы сделать:

IEnumerable thePanelAndTwoNext = menuCell.Controls.OfType()
                .SkipWhile(panel => !panel.Controls.OfType()
                                       .Any(label => label.ID == clas))
                .Take(3);
1
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)