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

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

Сообщение Anonymous »


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

CTY ProcId ProcTyp ProcDate ZZZ 23-015 ИНИЦИТ 2023-01-26T20:04:30 ZZZ 23-015 ОБНОВЛЕНИЕ 26.01.2023T20:04:45 ZZZ 23-015 ЗАГРУЗИТЬ 2023-01-26T20:05:00 ZZZ 23-015 ЗАГРУЗИТЬ 31.05.2023T15:12:01 ZZZ 23-015 УДАЛИТЬ 25.07.2023T12:28:38 ZZZ 23-246 ИНИТ 2023-11-07T23:31:09 ZZZ 23-246 УДАЛИТЬ 2023-11-08T16:49:55 ZZZ 23-248 ИНИТ 2023-11-08T16:40:18 ZZZ 23-248 ОБНОВЛЕНИЕ 2023-11-08T16:43:14 ZZZ 23-248 ЗАГРУЗИТЬ 2023-11-08T16:43:35 Я хочу сгруппировать данные по CTY, а затем по ProcId, а затем получить MAX ProcDate. Однако те группы, которые имеют 1 или более ProcTyp = 'DELETE', должны быть исключены из группировки. Я не просто хочу отфильтровать эти записи, а отфильтровать ГРУППЫ, в которых есть эти записи. В этом случае результатом должен быть список:

CTY ProcId ProcTyp MaxProcDate ZZZ 23-248 ЗАГРУЗИТЬ 2023-11-08T16:43:35 Мой текущий код на C#:

var resListMax = resListAll .GroupBy(c => новый {c.CTY, c.ProcId}) .Select(g => новый { г.Ключ.CTY, g.Key.ProcId, MaxProcDate = g.Max(row => row.ProcDate), }) .OrderBy(x => x.CTY).ThenBy(x => x.ProcId) .К списку(); Я просматривал примеры, но так и не понял, где мне следует поставить групповую фильтрацию? Я чувствую, что этот пост — это то, что я хочу, но не знаю, как это реализовать. Любая помощь приветствуется.
Ответить

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

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

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

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

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