Запрос LINQ для разделения упорядоченного списка на подсписки смежных точек по некоторым критериям.C#

Место общения программистов C#
Ответить
Anonymous
 Запрос LINQ для разделения упорядоченного списка на подсписки смежных точек по некоторым критериям.

Сообщение Anonymous »

Ищу помощь в написании запроса LINQ к некоторым объектам. Я чувствую, что если бы мои навыки LINQ были более ниндзя, я мог бы сделать это с помощью какой-нибудь умной GroupBy/SelectMany (или чего-то еще ?!).

В общем, вопрос заключается в следующем: учитывая список объектов в некотором порядке, где каждый объект имеет флаг, как мне разделить список на подсписки, где каждый подсписок представляет собой все смежные точки, где установлен флаг?

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

Код: Выделить всё

foreach object obj
if(obj.FlagSet)
add it to my currentsublist
else
skip to the next obj where FlagSet and start a new sublist
Итак, учитывая следующие входные данные:

{ 1, Флаг }, { 2, Флаг }, {3, NoFlag }, {4, Флаг}, {5, NoFlag}, {6, Флаг}...

Мне нужен следующий результат:

Список 1: {1, 2>
Список 2: {4}
Список 3: {6}

И я хотел бы сделать это функционально через LINQ. Есть идеи?

(Сначала я осмотрелся, но все вопросы, которые я видел, похоже, сводились к тому, чтобы просто сгруппировать список или разделить его на равные размеры, что мне не помогло.)

Подробнее здесь: https://stackoverflow.com/questions/746 ... -by-some-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»